Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow linking to extra libs static when not using find_package() #104

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions CMake/3rdparty.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ if(DCMTK_USE_FIND_PACKAGE)
message(STATUS "Info: DCMTK PNG support will be enabled")
set(WITH_LIBPNG 1)
include_directories(${PNG_INCLUDE_DIR})
set(LIBPNG_LIBS ${PNG_LIBRARY})
set(LIBPNG_LIBS ${PNG_LIBRARY} ${LIBPNG_EXTRA_LIBS_STATIC})
endif()
endif()

Expand Down Expand Up @@ -248,7 +248,7 @@ else()
if(WITH_LIBXMLINC)
set(LIBXML_INCDIR "${WITH_LIBXMLINC}/include")
set(LIBXML_LIBDIR "${WITH_LIBXMLINC}/lib")
set(LIBXML_LIBS debug "${LIBXML_LIBDIR}/libxml2_d.lib" optimized "${LIBXML_LIBDIR}/libxml2_o.lib")
set(LIBXML_LIBS debug "${LIBXML_LIBDIR}/libxml2_d.lib" optimized "${LIBXML_LIBDIR}/libxml2_o.lib" ${LIBXML2_EXTRA_LIBS_STATIC})
if (EXISTS "${LIBXML_LIBDIR}/iconv_o.lib")
set(LIBXML_LIBS ${LIBXML_LIBS} debug "${LIBXML_LIBDIR}/iconv_d.lib" optimized "${LIBXML_LIBDIR}/iconv_o.lib")
endif()
Expand All @@ -268,7 +268,7 @@ else()
if(WITH_LIBPNGINC)
set(LIBPNG_INCDIR "${WITH_LIBPNGINC}/include")
set(LIBPNG_LIBDIR "${WITH_LIBPNGINC}/lib")
set(LIBPNG_LIBS debug "${LIBPNG_LIBDIR}/libpng_d.lib" optimized "${LIBPNG_LIBDIR}/libpng_o.lib")
set(LIBPNG_LIBS debug "${LIBPNG_LIBDIR}/libpng_d.lib" optimized "${LIBPNG_LIBDIR}/libpng_o.lib" ${LIBPNG_EXTRA_LIBS_STATIC})
message(STATUS "Info: DCMTK PNG support will be enabled")
set(WITH_LIBPNG 1)
else() # turn off library if library path not set
Expand All @@ -283,7 +283,7 @@ else()
if(WITH_LIBTIFFINC)
set(LIBTIFF_INCDIR "${WITH_LIBTIFFINC}/include")
set(LIBTIFF_LIBDIR "${WITH_LIBTIFFINC}/lib")
set(LIBTIFF_LIBS debug "${LIBTIFF_LIBDIR}/libtiff_d.lib" optimized "${LIBTIFF_LIBDIR}/libtiff_o.lib")
set(LIBTIFF_LIBS debug "${LIBTIFF_LIBDIR}/libtiff_d.lib" optimized "${LIBTIFF_LIBDIR}/libtiff_o.lib" ${TIFF_EXTRA_LIBS_STATIC})
message(STATUS "Info: DCMTK TIFF support will be enabled")
set(WITH_LIBTIFF 1)
else() # turn off library if library path not set
Expand All @@ -301,7 +301,7 @@ else()
set(OPENSSL_INCDIR "${WITH_OPENSSLINC}/include")
set(OPENSSL_LIBDIR "${WITH_OPENSSLINC}/lib")
# starting with OpenSSL 1.1.0, the Windows crypt32 library is needed for a static link of OpenSSL.
set(OPENSSL_LIBS "crypt32" debug "${OPENSSL_LIBDIR}/dcmtkssl_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkssl_o.lib" debug "${OPENSSL_LIBDIR}/dcmtkcrypto_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkcrypto_o.lib")
set(OPENSSL_LIBS "crypt32" debug "${OPENSSL_LIBDIR}/dcmtkssl_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkssl_o.lib" debug "${OPENSSL_LIBDIR}/dcmtkcrypto_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkcrypto_o.lib" ${OPENSSL_EXTRA_LIBS_STATIC})
set(TEMP_INCLUDES "${CMAKE_REQUIRED_INCLUDES}")
list(APPEND CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCDIR}")
CHECK_CXX_SOURCE_COMPILES("extern \"C\" {\n#include <openssl/ssl.h>\n}\nint main(){\n#if OPENSSL_VERSION_NUMBER < 0x10001000L\n#error OpenSSL too old\n#endif\n}\n" OPENSSL_VERSION_CHECK)
Expand Down Expand Up @@ -341,7 +341,7 @@ else()
if(WITH_SNDFILEINC)
set(SNDFILE_INCDIR "${WITH_SNDFILEINC}/include")
set(SNDFILE_LIBDIR "${WITH_SNDFILEINC}/lib")
set(SNDFILE_LIBS debug "${SNDFILE_LIBDIR}/libsndfile_d.lib" optimized "${SNDFILE_LIBDIR}/libsndfile_o.lib")
set(SNDFILE_LIBS debug "${SNDFILE_LIBDIR}/libsndfile_d.lib" optimized "${SNDFILE_LIBDIR}/libsndfile_o.lib" ${SNDFILE_EXTRA_LIBS_STATIC})
message(STATUS "Info: DCMTK SNDFILE support will be enabled")
set(WITH_SNDFILE 1)
else() # turn off library if library path not set
Expand Down Expand Up @@ -379,7 +379,7 @@ else()
else()
set(OPENJPEG_INCDIR "${WITH_OPENJPEGINC1}")
set(OPENJPEG_LIBDIR "${WITH_OPENJPEGINC}/lib")
set(OPENJPEG_LIBS debug "${OPENJPEG_LIBDIR}/openjp2_d.lib" optimized "${OPENJPEG_LIBDIR}/openjp2_o.lib")
set(OPENJPEG_LIBS debug "${OPENJPEG_LIBDIR}/openjp2_d.lib" optimized "${OPENJPEG_LIBDIR}/openjp2_o.lib" ${OPENJPEG_EXTRA_LIBS_STATIC})
message(STATUS "Info: DCMTK OpenJPEG support will be enabled")
set(WITH_OPENJPEG 1)
endif()
Expand Down
4 changes: 3 additions & 1 deletion CMake/dcmtkPrepare.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,10 @@ endfunction()
# This should possibly be enhanced by using find_package() at some point. The best solution
# would probably be to compile all third-party libraries ourself.
if(DCMTK_LINK_STATIC OR DCMTK_PORTABLE_LINUX_BINARIES)
get_static_library("STATIC_ZLIB" "libz.a")
set(LIBPNG_EXTRA_LIBS_STATIC "${STATIC_ZLIB}")
get_static_library("STATIC_DL" "libdl.a")
get_static_library("STATIC_LZMA" "liblzma.a")
get_static_library("STATIC_ZLIB" "libz.a")
set(LIBXML2_EXTRA_LIBS_STATIC "${STATIC_LZMA}" "${STATIC_ZLIB}" "${STATIC_DL}")
get_static_library("STATIC_PTHREAD" "libpthread.a")
set(OPENJPEG_EXTRA_LIBS_STATIC "${STATIC_PTHREAD}")
Expand All @@ -129,6 +130,7 @@ if(DCMTK_LINK_STATIC OR DCMTK_PORTABLE_LINUX_BINARIES)
get_static_library("STATIC_NSL" "libnsl.a")
set(WRAP_EXTRA_LIBS_STATIC "${STATIC_NSL}")
else()
set(LIBPNG_EXTRA_LIBS_STATIC)
set(LIBXML2_EXTRA_LIBS_STATIC)
set(OPENJPEG_EXTRA_LIBS_STATIC)
set(OPENSSL_EXTRA_LIBS_STATIC)
Expand Down