Make BUILD_SHARED_LIBS configurable

As previously build both shared and static if BUILD_SHARED_LIBS is ON.
Otherwise build static only.
master
Leo Yang 2015-08-27 12:41:25 -04:00
parent 4751b606fa
commit 7147b646f4
3 changed files with 31 additions and 9 deletions

View File

@ -191,8 +191,7 @@ else (USE_EXT_GD)
CONFIGURE_FILE(${GD_SOURCE_DIR}/src/config.h.cmake ${GD_SOURCE_DIR}/src/config.h ESCAPE_QUOTES)
set(BUILD_SHARED_LIBS On)
option(BUILD_SHARED_LIBS "Build both shared and static libs" ON)
if (WIN32)
SET(GD_LIB libgd)

View File

@ -16,9 +16,15 @@ if (TIFF_FOUND)
LIST(APPEND TESTS_FILES tiffread)
endif (TIFF_FOUND)
if (BUILD_SHARED_LIBS)
set(GD_LINK_LIB ${GD_LIB})
else()
set(GD_LINK_LIB ${GD_LIB_STATIC})
endif()
FOREACH(test_name ${TESTS_FILES})
add_executable(${test_name} "${test_name}.c")
target_link_libraries (${test_name} ${GD_LIB})
target_link_libraries (${test_name} ${GD_LINK_LIB})
ENDFOREACH(test_name)
if(JPEG_FOUND)
@ -29,11 +35,11 @@ endif(JPEG_FOUND)
if (WIN32 AND NOT MINGW AND NOT MSYS)
add_executable(windows WIN32 "windows.c")
target_link_libraries (windows ${GD_LIB})
target_link_libraries (windows ${GD_LINK_LIB})
else (WIN32 AND NOT MINGW AND NOT MSYS)
if (MINGW OR MSYS)
add_executable(windows "windows.c")
add_definitions("-mwindows")
target_link_libraries(windows ${GD_LIB} stdc++ gdi32)
target_link_libraries(windows ${GD_LINK_LIB} stdc++ gdi32)
endif (MINGW OR MSYS)
endif (WIN32 AND NOT MINGW AND NOT MSYS)

View File

@ -67,7 +67,11 @@ SET (LIBGD_SRC_FILES
)
include(GNUInstallDirs)
add_library(${GD_LIB} ${LIBGD_SRC_FILES})
if (BUILD_SHARED_LIBS)
add_library(${GD_LIB} ${LIBGD_SRC_FILES})
endif()
add_library(${GD_LIB_STATIC} STATIC ${LIBGD_SRC_FILES})
if (WIN32 AND NOT MINGW AND NOT MSYS)
@ -86,16 +90,29 @@ endif (MINGW OR MSYS)
INCLUDE_DIRECTORIES(BEFORE "${PROJECT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${GD_SOURCE_DIR}/src")
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})
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})
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 annotate gdparttopng gdtopng gd2copypal gd2topng pngtogd pngtogd2 webpng gd2togif gdcmpgif giftogd2)
foreach(program ${GD_PROGRAMS})
add_executable(${program} ${program}.c)
target_link_libraries(${program} ${GD_LIB})
if (BUILD_SHARED_LIBS)
target_link_libraries(${program} ${GD_LIB})
else()
target_link_libraries(${program} ${GD_LIB_STATIC})
endif()
endforeach(program)
install(TARGETS ${GD_LIB} ${GD_LIB_STATIC} ${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})
endif()
install(TARGETS ${GD_INSTALL_TARGETS}
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})