diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-11-17 16:48:17 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-12-16 07:58:56 -0800 |
commit | 24f3743fc11c7f0879b1180ca6e2e179d04da91f (patch) | |
tree | bbd8128a17fe4c8d20054f2079edc6b4c7775c41 | |
parent | 86765774dc8193ed910041b13be25c6d3145ce72 (diff) | |
download | subsurface-24f3743fc11c7f0879b1180ca6e2e179d04da91f.tar.gz |
Start to clean the Main CMakeLists.txt filel
CMake is a strange and complex language for buildsystems,
and as such we need to let the main CMakeLists.txt be as
clear as possible.
Moving a bunch of code that deals with finding git via
default CMake way or pkg_cofig to a file named 'HandleFindGit'
on our cmake/Modules folder.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
-rw-r--r-- | CMakeLists.txt | 34 | ||||
-rw-r--r-- | cmake/Modules/HandleFindGit2.cmake | 39 |
2 files changed, 42 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bccbecd7..cb174b1fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ option(LIBGIT2_FROM_PKGCONFIG "use pkg-config to retrieve libgit2" OFF) option(LIBDC_FROM_PKGCONFIG "use pkg-config to retrieve libdivecomputer" OFF) option(LIBGRANTLEE_FROM_PKGCONFIG "use pkg-config to retrieve grantlee" OFF) option(LIBMARBLE_FROM_PKGCONFIG "use pkg-config to retrieve marble" OFF) + option(MAKE_TESTS "Make the tests" ON) option(NO_MARBLE "disable the marble widget" OFF) option(NO_DOCS "disable the docs" OFF) @@ -72,6 +73,7 @@ endif() # pkgconfig for required libraries find_package(PkgConfig) include(cmake/Modules/pkgconfig_helper.cmake) +include(cmake/Modules/HandleFindGit2.cmake) pkg_config_library(LIBXML libxml-2.0 REQUIRED) pkg_config_library(LIBSQLITE3 sqlite3 REQUIRED) @@ -79,42 +81,12 @@ pkg_config_library(LIBXSLT libxslt REQUIRED) pkg_config_library(LIBZIP libzip REQUIRED) pkg_config_library(LIBUSB libusb-1.0 QUIET) + if(SMARTTRAK_IMPORT) pkg_config_library(GLIB2 glib-2.0 REQUIRED) pkg_config_library(LIBMDB libmdb REQUIRED) endif() -# more libraries with special handling in case we build them ourselves -if(LIBGIT2_FROM_PKGCONFIG) - pkg_config_library(LIBGIT2 libgit2 REQUIRED) - set(LIBGIT2_LIBRARIES "") - if(ANDROID) - # for Android we need to force a static link against ssl and crypto - # this is a bit hacky, but it seems to work - set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBGIT2_LIBRARY_DIRS}/libssl.a ${LIBGIT2_LIBRARY_DIRS}/libcrypto.a) - endif() - if(FORCE_LIBSSH) - pkg_config_library(LIBSSH2 libssh2 REQUIRED) - set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBSSH2_LIBRARIES}) - endif() -else() - find_package(LIBGIT2 REQUIRED) - include_directories(${LIBGIT2_INCLUDE_DIR}) - if(FORCE_LIBSSH) - find_package(Libssh2 QUIET CONFIG) - if ("${LIBSSH2_VERSION}" STRGREATER "1.6.1") - set(LIBSSH2_LIBRARIES Libssh2::libssh2) - endif() - if(!Libssh2_FOUND AND !LIBSSH2_FOUND) - pkg_config_library(LIBSSH2 libssh2 REQUIRED) - endif() - endif() - find_package(libcurl QUIET) - if(!LIBCURL_FOUND OR "${LIBCURL_FOUND}" STREQUAL "") - pkg_config_library(LIBCURL libcurl REQUIRED) - endif() - set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} -L${LIBSSH2_LIBRARY_DIRS} ${LIBSSH2_LIBRARIES} ${LIBCURL_LIBRARIES}) -endif() if(LIBDC_FROM_PKGCONFIG) pkg_config_library(LIBDC libdivecomputer REQUIRED) diff --git a/cmake/Modules/HandleFindGit2.cmake b/cmake/Modules/HandleFindGit2.cmake new file mode 100644 index 000000000..e0bb9979f --- /dev/null +++ b/cmake/Modules/HandleFindGit2.cmake @@ -0,0 +1,39 @@ +# more libraries with special handling in case we build them ourselves +if(LIBGIT2_FROM_PKGCONFIG) + pkg_config_library(LIBGIT2 libgit2 REQUIRED) + set(LIBGIT2_LIBRARIES "") + if(USE_LIBGIT23_API) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_LIBGIT23_API") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_LIBGIT23_API") + if(ANDROID) + # for Android we need to force a static link against ssl and crypto + # this is a bit hacky, but it seems to work + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBGIT2_LIBRARY_DIRS}/libssl.a ${LIBGIT2_LIBRARY_DIRS}/libcrypto.a) + endif() + if(FORCE_LIBSSH) + pkg_config_library(LIBSSH2 libssh2 REQUIRED) + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBSSH2_LIBRARIES}) + endif() + endif() +else() + find_package(LIBGIT2 REQUIRED) + include_directories(${LIBGIT2_INCLUDE_DIR}) + if(USE_LIBGIT23_API) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_LIBGIT23_API") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_LIBGIT23_API") + if(FORCE_LIBSSH) + find_package(Libssh2 QUIET CONFIG) + if ("${LIBSSH2_VERSION}" STRGREATER "1.6.1") + set(LIBSSH2_LIBRARIES Libssh2::libssh2) + endif() + if(!LIBSSH2_FOUND OR "${LIBSSH2_FOUND}" STREQUAL "") + pkg_config_library(LIBSSH2 libssh2 REQUIRED) + endif() + endif() + find_package(libcurl QUIET) + if(!LIBCURL_FOUND OR "${LIBCURL_FOUND}" STREQUAL "") + pkg_config_library(LIBCURL libcurl REQUIRED) + endif() + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} -L${LIBSSH2_LIBRARY_DIRS} ${LIBSSH2_LIBRARIES} ${LIBCURL_LIBRARIES}) + endif() +endif() |