From 978fa7047309d2f6550f927f23b5b199c8346310 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 12 Apr 2020 10:51:00 +0200 Subject: [PATCH] Don't link C libraries statically by default for Windows, as this isn't needed if another library has their own C libraries already has them statically linked. --- .drone.yml | 2 +- CMakeLists.txt | 7 +++++-- conanfile.py | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 23742e1..e72187d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -29,7 +29,7 @@ steps: - update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix - update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix - update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix - - cmake -DCMAKE_BUILD_TYPE=Release . -B build-release-windows -D CMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc -D CMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DWINDOWS=ON + - cmake -DCMAKE_BUILD_TYPE=Release . -B build-release-windows -D CMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc -D CMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DWINDOWS=ON -DSTATICC=ON - cmake --build build-release-windows --target all -- -j 4 - export WINEARCH=win64 - wine build-release-windows/ArbutilsTests.exe -s diff --git a/CMakeLists.txt b/CMakeLists.txt index 0064a29..c587132 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,12 +21,15 @@ endif() if (WINDOWS) MESSAGE(WARNING, "Using Windows Build.") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -Wa,-mbig-obj -Wl,-allow-multiple-definition") - # Statically link libraries we need in Windows. +endif (WINDOWS) + +if (STATICC) target_link_libraries(Arbutils -static -static-libgcc -static-libstdc++) if (NOT DEFINED CONAN_EXPORTED) target_link_libraries(ArbutilsTests -static -static-libgcc -static-libstdc++) endif() -endif (WINDOWS) +endif() + if (NOT DEFINED CONAN_EXPORTED) target_compile_definitions(ArbutilsTests PRIVATE TESTS_BUILD) diff --git a/conanfile.py b/conanfile.py index 094f77e..36767b2 100644 --- a/conanfile.py +++ b/conanfile.py @@ -7,8 +7,8 @@ class ArbutilsConan(ConanFile): url = "https://git.p-epsilon.com/Deukhoofd/Arbutils" description = "A helper library for the Epsilon project." settings = "os", "compiler" - options = {"shared": [True, False]} - default_options = {"shared": True} + options = {"shared": [True, False], "staticC": [True, False]} + default_options = {"shared": True, "staticC": False} generators = "cmake" exports_sources = "*" compiler = "clang" @@ -19,6 +19,8 @@ class ArbutilsConan(ConanFile): if self.settings.os == "Windows": self.output.warn("Noticed Windows target, setting Cmake WINDOWS=On.") cmake.definitions["WINDOWS"] = "On" + if self.options.staticC: + cmake.definitions["STATICC"] = "On" cmake.configure() cmake.build()