[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 59/153: CMake: Respect BUILD_SHARED_LIBS
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 59/153: CMake: Respect BUILD_SHARED_LIBS |
Date: |
Tue, 11 Sep 2018 12:52:10 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit c892795ea3601a6d210a325b2ac566b1c30d3334
Author: Ruslan Baratov <address@hidden>
AuthorDate: Tue Jul 10 12:54:34 2018 +0300
CMake: Respect BUILD_SHARED_LIBS
Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
custom option CURL_STATICLIB.
Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
Reviewed-by: Sergei Nikulov
Closes #2755
---
CMakeLists.txt | 14 +++++++++-----
appveyor.yml | 22 +++++++++++-----------
lib/CMakeLists.txt | 21 ++++++++++-----------
tests/server/CMakeLists.txt | 2 +-
4 files changed, 31 insertions(+), 28 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a1e432a95..e6dbb73f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,7 +76,7 @@ include_directories(${CURL_SOURCE_DIR}/include)
option(CURL_WERROR "Turn compiler warnings into errors" OFF)
option(PICKY_COMPILER "Enable picky compiler options" ON)
option(BUILD_CURL_EXE "Set to ON to build curl executable." ON)
-option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF)
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(ENABLE_ARES "Set to ON to enable c-ares support" OFF)
if(WIN32)
option(CURL_STATIC_CRT "Set to ON to build libcurl with static CRT on
Windows (/MT)." OFF)
@@ -1247,11 +1247,12 @@ set(CONFIGURE_OPTIONS "")
# TODO when to set "-DCURL_STATICLIB" for CPPFLAG_CURL_STATICLIB?
set(CPPFLAG_CURL_STATICLIB "")
set(CURLVERSION "${CURL_VERSION}")
-set(ENABLE_SHARED "yes")
-if(CURL_STATICLIB)
- set(ENABLE_STATIC "yes")
-else()
+if(BUILD_SHARED_LIBS)
+ set(ENABLE_SHARED "yes")
set(ENABLE_STATIC "no")
+else()
+ set(ENABLE_SHARED "no")
+ set(ENABLE_STATIC "yes")
endif()
set(exec_prefix "\${prefix}")
set(includedir "\${prefix}/include")
@@ -1275,6 +1276,9 @@ set(REQUIRE_LIB_DEPS "no")
set(VERSIONNUM "${CURL_VERSION_NUM}")
# Finally generate a "curl-config" matching this config
+# Use:
+# * ENABLE_SHARED
+# * ENABLE_STATIC
configure_file("${CURL_SOURCE_DIR}/curl-config.in"
"${CURL_BINARY_DIR}/curl-config" @ONLY)
install(FILES "${CURL_BINARY_DIR}/curl-config"
diff --git a/appveyor.yml b/appveyor.yml
index e2664b4cb..b39a23446 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -7,66 +7,66 @@ environment:
PRJ_CFG: Release
OPENSSL: OFF
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 12 2013 Win64"
BDIR: msvc2013
PRJ_CFG: Release
OPENSSL: OFF
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 14 2015 Win64"
BDIR: msvc2015
PRJ_CFG: Release
OPENSSL: OFF
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 11 2012 Win64"
BDIR: msvc2012
PRJ_CFG: Release
OPENSSL: ON
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 12 2013 Win64"
BDIR: msvc2013
PRJ_CFG: Release
OPENSSL: ON
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 14 2015 Win64"
BDIR: msvc2015
PRJ_CFG: Release
OPENSSL: ON
TESTING: OFF
- STATICLIB: OFF
+ SHARED: ON
- PRJ_GEN: "Visual Studio 11 2012 Win64"
BDIR: msvc2012
PRJ_CFG: Release
OPENSSL: OFF
TESTING: ON
- STATICLIB: ON
+ SHARED: OFF
- PRJ_GEN: "Visual Studio 12 2013 Win64"
BDIR: msvc2013
PRJ_CFG: Release
OPENSSL: OFF
TESTING: ON
- STATICLIB: ON
+ SHARED: OFF
- PRJ_GEN: "Visual Studio 14 2015 Win64"
BDIR: msvc2015
PRJ_CFG: Release
OPENSSL: OFF
TESTING: ON
- STATICLIB: ON
+ SHARED: OFF
- PRJ_GEN: "Visual Studio 14 2015"
BDIR: msvc2015
PRJ_CFG: Release
OPENSSL: OFF
TESTING: ON
- STATICLIB: ON
+ SHARED: OFF
build_script:
- mkdir build.%BDIR%
- cd build.%BDIR%
- - cmake .. -G"%PRJ_GEN%" -DCMAKE_USE_OPENSSL=%OPENSSL%
-DCURL_STATICLIB=%STATICLIB% -DBUILD_TESTING=%TESTING% -DCURL_WERROR=ON
+ - cmake .. -G"%PRJ_GEN%" -DCMAKE_USE_OPENSSL=%OPENSSL%
-DBUILD_SHARED_LIBS=%SHARED% -DBUILD_TESTING=%TESTING% -DCURL_WERROR=ON
- cmake --build . --config %PRJ_CFG% --clean-first
# whitelist branches to avoid testing feature branches twice (as branch and as
pull request)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 6b90f011f..306ba1a6e 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -1,5 +1,13 @@
set(LIB_NAME libcurl)
+if(BUILD_SHARED_LIBS)
+ set(CURL_STATICLIB NO)
+else()
+ set(CURL_STATICLIB YES)
+endif()
+
+# Use:
+# * CURL_STATICLIB
configure_file(curl_config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/curl_config.h)
@@ -59,21 +67,12 @@ if(USE_ARES)
include_directories(${CARES_INCLUDE_DIR})
endif()
-if(CURL_STATICLIB)
- # Static lib
- set(CURL_USER_DEFINED_DYNAMIC_OR_STATIC STATIC)
-else()
- # DLL / so dynamic lib
- set(CURL_USER_DEFINED_DYNAMIC_OR_STATIC SHARED)
-endif()
-
add_library(
${LIB_NAME}
- ${CURL_USER_DEFINED_DYNAMIC_OR_STATIC}
${HHEADERS} ${CSOURCES}
)
-if(MSVC AND CURL_STATICLIB)
+if(MSVC AND NOT BUILD_SHARED_LIBS)
set_target_properties(${LIB_NAME} PROPERTIES STATIC_LIBRARY_FLAGS
${CMAKE_EXE_LINKER_FLAGS})
endif()
@@ -95,7 +94,7 @@ set_target_properties(${LIB_NAME} PROPERTIES PREFIX "")
set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "")
if(WIN32)
- if(NOT CURL_STATICLIB)
+ if(BUILD_SHARED_LIBS)
# Add "_imp" as a suffix before the extension to avoid conflicting with
the statically linked "libcurl.lib"
set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib")
endif()
diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt
index 9b5714d20..9d2a43164 100644
--- a/tests/server/CMakeLists.txt
+++ b/tests/server/CMakeLists.txt
@@ -25,7 +25,7 @@ function(SETUP_EXECUTABLE TEST_NAME) # ARGN are the files
in the test
# to build the servers. In order to achieve proper linkage of these
# files on Win32 targets it is necessary to build the test servers
# with CURL_STATICLIB defined, independently of how libcurl is built.
- if(NOT CURL_STATICLIB)
+ if(BUILD_SHARED_LIBS)
set_target_properties(${TEST_NAME} PROPERTIES
COMPILE_DEFINITIONS CURL_STATICLIB) # ${UPPER_TEST_NAME}
endif()
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnurl] 75/153: travis: execute "set -eo pipefail" for coverage build, (continued)
- [GNUnet-SVN] [gnurl] 75/153: travis: execute "set -eo pipefail" for coverage build, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 73/153: docs: mention NULL is fine input to several functions, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 66/153: telnet: Remove unused macros TELOPTS and TELCMDS, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 69/153: asyn-thread: Remove unused macro, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 70/153: test1540: Remove unused macro TEST_HANG_TIMEOUT, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 64/153: configure: fix for -lpthread detection with OpenSSL and pkg-config, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 65/153: openssl: fix debug messages, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 36/153: conn_free: updated comment to clarify, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 41/153: examples/ephiperfifo: checksrc compliance, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 62/153: windows: follow up to the buffer-tuning 1ba1dba7, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 59/153: CMake: Respect BUILD_SHARED_LIBS,
gnunet <=
- [GNUnet-SVN] [gnurl] 33/153: mime: check Curl_rand_hex's return code, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 54/153: lib/Makefile: only do symbol hiding if told to, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 38/153: tests/http_pipe.py: Use /usr/bin/env to find python, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 57/153: cmake: link curl to the OpenSSL targets instead of lib absolute paths, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 48/153: mailmap: Daniel Jelinski, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 42/153: travis: run a 'make checksrc' too, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 46/153: curl: use Content-Disposition before the "URL end" for -OJ, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 29/153: docs/CURLOPT_WRITEFUNCTION: size is always 1, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 58/153: cmake: bumped minimum version to 3.4, gnunet, 2018/09/11
- [GNUnet-SVN] [gnurl] 26/153: system_win32: fix version checking, gnunet, 2018/09/11