Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=6059d5255e752758ecc3b2093442310846d7d634
commit 6059d5255e752758ecc3b2093442310846d7d634 Author: Michel Hermier <[email protected]> Date: Sat Dec 7 13:46:13 2013 +0100 cmake: Improve static building (not yeat fully static). diff --git a/CMakeLists.txt b/CMakeLists.txt index 53f8092..e251fa1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,15 +25,40 @@ option(FAKEROOT_PROOF "enable fakeroot proof protection" OFF) if(ENABLE_STATIC) set(CMAKE_PROJECT_NAME_LOWER ${CMAKE_PROJECT_NAME_LOWER}.static) + set(BUILD_TYPE STATIC) set(BUILD_SHARED_LIBS OFF) - set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -pthread") +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static") # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") +# set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -pthread") set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX}) +# set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_FIND_LIBRARY_SUFFIXES}) # set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) # remove -Wl,-Bdynamic) # set(CMAKE_SHARED_LIBRARY_C_FLAGS) # remove -fPIC # set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) # remove -rdynamic +else() + set(BUILD_TYPE SHARED) endif(ENABLE_STATIC) +INCLUDE(FindPkgConfig) +PKG_SEARCH_MODULE(LIBARCHIVE REQUIRED libarchive) +PKG_SEARCH_MODULE(LIBCURL libpaccurl) +if(NOT LIBCURL_FOUND) + PKG_SEARCH_MODULE(LIBCURL REQUIRED libcurl) + include_directories("${LIBCURL_INCLUDEDIR}/curl") + message(WARNING "libpaccurl not found") +else() + set(LIBCURL_STATIC_LIBRARIES ${LIBCURL_STATIC_LIBRARIES} cares idn ssh2 z) # Temporary fixes till paccurl is fixed + include_directories("${LIBCURL_INCLUDEDIR}/paccurl") +endif(NOT PACCURL_FOUND) + +if(ENABLE_STATIC) + set(LIBPACMAN_LIBRARIES ${LIBARCHIVE_STATIC_LIBRARIES} ${LIBCURL_STATIC_LIBRARIES}) +else(ENABLE_STATIC) + set(LIBPACMAN_LIBRARIES ${LIBARCHIVE_LIBRARIES} ${LIBCURL_LIBRARIES}) +endif(ENABLE_STATIC) +message(STATUS "LIBPACMAN_LIBRARIES: ${LIBPACMAN_LIBRARIES}") + FIND_PACKAGE(Doxygen) IF(DOXYGEN_FOUND) SET(HAS_DOXYGEN TRUE CACHE BOOL "Use Doxygen") @@ -53,7 +78,7 @@ if(NOT DISABLE_BINDINGS) FIND_PACKAGE(SWIG) endif(NOT DISABLE_BINDINGS) -IF(SWIG_FOUND) +IF(NOT ENABLE_STATIC AND SWIG_FOUND) INCLUDE(${SWIG_USE_FILE}) SET(CMAKE_SWIG_FLAGS "-I${CMAKE_SOURCE_DIR}/lib/libpacman/") @@ -92,7 +117,7 @@ IF(SWIG_FOUND) ELSE() message(WARNING "SWIG not found or bindings disabled, no bindings will be built") -ENDIF(SWIG_FOUND) +ENDIF(NOT ENABLE_STATIC AND SWIG_FOUND) CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) diff --git a/lib/libpacman/CMakeLists.txt b/lib/libpacman/CMakeLists.txt index dee28b2..6b32250 100644 --- a/lib/libpacman/CMakeLists.txt +++ b/lib/libpacman/CMakeLists.txt @@ -51,25 +51,15 @@ set(LIBPACMAN_SOURCES include_directories (${PACMAN-G2_SOURCE_DIR}) include_directories (${CMAKE_CURRENT_SOURCE_DIR}) -find_package(LibArchive REQUIRED) -find_package(PacCURL) -if(NOT PACCURL_FOUND) - find_package(CURL REQUIRED) - include_directories("${CURL_INCLUDE_DIRS}/curl") - message(WARNING "libpaccurl not found") -else() - include_directories("${CURL_INCLUDE_DIRS}/paccurl") -endif(NOT PACCURL_FOUND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE64_SOURCE") -add_library(pacman SHARED ${LIBPACMAN_SOURCES}) -set_target_properties(pacman PROPERTIES SOVERSION 0.${PACMAN_G2_LIB_VERSION}) -target_link_libraries(pacman ${LibArchive_LIBRARIES} ${CURL_LIBRARIES}) - +add_library(pacman ${BUILD_TYPE} ${LIBPACMAN_SOURCES}) +target_link_libraries(pacman ${LIBPACMAN_LIBRARIES}) if(ENABLE_STATIC) set_target_properties(pacman PROPERTIES LINK_SEARCH_START_STATIC ON) set_target_properties(pacman PROPERTIES LINK_SEARCH_END_STATIC ON) +else(ENABLE_STATIC) + set_target_properties(pacman PROPERTIES SOVERSION 0.${PACMAN_G2_LIB_VERSION}) endif(ENABLE_STATIC) #static build _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
