cmake: allow static libs to be disabled
The standard behavior in distros nowadays is to build shared libs and omit static libs. Split the build knobs in cmake to support this. It also matches what's available with the autotools build.master
parent
2b3dd57a6c
commit
5090a9ebf7
|
@ -193,7 +193,8 @@ else (USE_EXT_GD)
|
|||
|
||||
CONFIGURE_FILE(${GD_SOURCE_DIR}/src/config.h.cmake ${GD_SOURCE_DIR}/src/config.h ESCAPE_QUOTES)
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build both shared and static libs" ON)
|
||||
option(BUILD_SHARED_LIBS "Build shared libs" ON)
|
||||
option(BUILD_STATIC_LIBS "Build static libs" OFF)
|
||||
|
||||
if (WIN32)
|
||||
SET(GD_LIB libgd)
|
||||
|
|
|
@ -79,17 +79,18 @@ if (BUILD_SHARED_LIBS)
|
|||
add_library(${GD_LIB} ${LIBGD_SRC_FILES})
|
||||
endif()
|
||||
|
||||
add_library(${GD_LIB_STATIC} STATIC ${LIBGD_SRC_FILES})
|
||||
if (BUILD_STATIC_LIBS)
|
||||
add_library(${GD_LIB_STATIC} STATIC ${LIBGD_SRC_FILES})
|
||||
if (UNIX)
|
||||
set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32 AND NOT MINGW AND NOT MSYS)
|
||||
# SET_TARGET_PROPERTIES(${GD_LIB} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:msvcrt.lib")
|
||||
SET_PROPERTY(TARGET ${GD_LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS NONDLL=1)
|
||||
ENDIF(WIN32 AND NOT MINGW AND NOT MSYS)
|
||||
|
||||
if(UNIX)
|
||||
set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB})
|
||||
endif()
|
||||
|
||||
if (MINGW OR MSYS)
|
||||
ADD_DEFINITIONS("-mms-bitfields")
|
||||
set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB})
|
||||
|
@ -97,11 +98,24 @@ endif (MINGW OR MSYS)
|
|||
|
||||
INCLUDE_DIRECTORIES(BEFORE "${PROJECT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${GD_SOURCE_DIR}/src")
|
||||
|
||||
SET(LIBGD_DEP_LIBS
|
||||
${ZLIB_LIBRARIES}
|
||||
${FREETYPE_LIBRARIES}
|
||||
${PNG_LIBRARIES}
|
||||
${ICONV_LIBRARIES}
|
||||
${LIQ_LIBRARIES}
|
||||
${JPEG_LIBRARIES}
|
||||
${TIFF_LIBRARIES}
|
||||
${XPM_LIBRARIES}
|
||||
${FONTCONFIG_LIBRARY}
|
||||
${WEBP_LIBRARIES}
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${GD_LIB} ${ZLIB_LIBRARIES} ${FREETYPE_LIBRARIES} ${PNG_LIBRARIES} ${ICONV_LIBRARIES} ${LIQ_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${XPM_LIBRARIES} ${FONTCONFIG_LIBRARY} ${WEBP_LIBRARIES})
|
||||
target_link_libraries(${GD_LIB} ${LIBGD_DEP_LIBS})
|
||||
endif()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${GD_LIB_STATIC} ${LIBGD_DEP_LIBS})
|
||||
endif()
|
||||
|
||||
target_link_libraries(${GD_LIB_STATIC} ${ZLIB_LIBRARIES} ${FREETYPE_LIBRARIES} ${PNG_LIBRARIES} ${ICONV_LIBRARIES} ${LIQ_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${XPM_LIBRARIES} ${FONTCONFIG_LIBRARY} ${WEBP_LIBRARIES} )
|
||||
|
||||
set(GD_PROGRAMS gdcmpgif)
|
||||
|
||||
|
@ -129,10 +143,12 @@ foreach(program ${GD_PROGRAMS})
|
|||
endif()
|
||||
endforeach(program)
|
||||
|
||||
set(GD_INSTALL_TARGETS ${GD_PROGRAMS})
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set(GD_INSTALL_TARGETS ${GD_LIB} ${GD_LIB_STATIC} ${GD_PROGRAMS})
|
||||
else()
|
||||
set(GD_INSTALL_TARGETS ${GD_LIB_STATIC} ${GD_PROGRAMS})
|
||||
set(GD_INSTALL_TARGETS ${GD_INSTALL_TARGETS} ${GD_LIB})
|
||||
endif()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
set(GD_INSTALL_TARGETS ${GD_INSTALL_TARGETS} ${GD_LIB_STATIC})
|
||||
endif()
|
||||
|
||||
install(TARGETS ${GD_INSTALL_TARGETS}
|
||||
|
|
|
@ -95,6 +95,8 @@ build_autotools() {
|
|||
|
||||
build_cmake() {
|
||||
local args=(
|
||||
-DBUILD_SHARED_LIBS=1
|
||||
-DBUILD_STATIC_LIBS=1
|
||||
-DBUILD_TEST=1
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/local/lib
|
||||
|
|
Loading…
Reference in New Issue