Mercurial > hg > minc-tools
diff CMakeLists.txt @ 2602:0bbe7def883e
Making building shared libraries possible
author | Vladimir S. FONOV <vladimir.fonov@gmail.com> |
---|---|
date | Tue, 31 Jan 2012 19:33:41 -0500 |
parents | 6ba9bafd4321 |
children | a0c8d277185d |
line wrap: on
line diff
--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,7 @@ SET(PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") +option(BUILD_SHARED_LIBS "Build minc2 with shared libraries." OFF) OPTION(BUILD_MINC2 "Support minc2 file format" ON) OPTION(BUILD_TOOLS "Build minc tools (mincreshape,mincresample, etc)" ON) OPTION(BUILD_CONVERTERS "Build minc conversion programs (mnc2nii, nii2mnc , dcm2mnc...)" ON) @@ -36,13 +37,21 @@ OPTION(USE_SYSTEM_NETCDF "Use System NETCDF > 3.6.3" OFF) IF(BUILD_EZMINC) -OPTION(BUILD_MINC4ITK "Build ITK interface" ON) + OPTION(BUILD_MINC4ITK "Build ITK interface" ON) ENDIF(BUILD_EZMINC) IF(BUILD_MINC2) OPTION(USE_SYSTEM_HDF5 "Use System HDF5 > 1.8 " OFF) ENDIF(BUILD_MINC2) +IF(BUILD_SHARED_LIBS) + SET(LIBRARY_TYPE SHARED) + SET(LIBRARY_INSTALL LIBRARY) +ELSE(BUILD_SHARED_LIBS) + SET(LIBRARY_TYPE STATIC) + SET(LIBRARY_INSTALL ARCHIVE) +ENDIF(BUILD_SHARED_LIBS) + # external packages IF(USE_SYSTEM_NETCDF) FIND_PACKAGE(NETCDF REQUIRED) @@ -201,11 +210,11 @@ SET(MINC2_LIBRARY minc2) SET(MINC2_LIBRARIES ${MINC2_LIBRARY} ${HDF5_LIBRARY} ${NETCDF_LIBRARY} ${ZLIB_LIBRARIES} m ) - ADD_LIBRARY(minc2 STATIC ${minc_LIB_SRCS} ) + ADD_LIBRARY(minc2 ${LIBRARY_TYPE} ${minc_LIB_SRCS} ) TARGET_LINK_LIBRARIES(minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARIES} m ) - INSTALL(TARGETS minc2 ARCHIVE DESTINATION lib) + INSTALL(TARGETS minc2 ${LIBRARY_INSTALL} DESTINATION lib) INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h libsrc/voxel_loop.h @@ -227,9 +236,9 @@ ELSE(BUILD_MINC2) SET(minc_LIB_SRCS ${minc1_LIB_SRCS} ) - ADD_LIBRARY(minc STATIC ${minc1_LIB_SRCS} ) + ADD_LIBRARY(minc ${LIBRARY_TYPE} ${minc1_LIB_SRCS} ) TARGET_LINK_LIBRARIES(minc ${NETCDF_LIBRARY} ) - INSTALL(TARGETS minc ARCHIVE DESTINATION lib) + INSTALL(TARGETS minc ${LIBRARY_INSTALL} DESTINATION lib) INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h libsrc/voxel_loop.h @@ -291,15 +300,15 @@ IF(BUILD_MINC2) # build and install volume_io2 library - ADD_LIBRARY(volume_io2 STATIC ${volume_io_LIB_SRCS}) - INSTALL(TARGETS volume_io2 ARCHIVE DESTINATION lib) + ADD_LIBRARY(volume_io2 ${LIBRARY_TYPE} ${volume_io_LIB_SRCS}) + INSTALL(TARGETS volume_io2 ${LIBRARY_INSTALL} DESTINATION lib) SET_TARGET_PROPERTIES(volume_io2 PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) SET( VOLUME_IO_LIBRARY volume_io2) ADD_DEPENDENCIES(volume_io2 ${MINC2_LIBRARY}) ELSE(BUILD_MINC2) - ADD_LIBRARY(volume_io STATIC ${volume_io_LIB_SRCS}) - INSTALL(TARGETS volume_io ARCHIVE DESTINATION lib) + ADD_LIBRARY(volume_io ${LIBRARY_TYPE} ${volume_io_LIB_SRCS}) + INSTALL(TARGETS volume_io ${LIBRARY_INSTALL} DESTINATION lib) SET_TARGET_PROPERTIES(volume_io PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) SET( VOLUME_IO_LIBRARY volume_io) ADD_DEPENDENCIES(volume_io ${MINC2_LIBRARY}) @@ -380,7 +389,7 @@ configure_file(UseMINC2.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/MINC2Config.cmake +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/MINC2Config.cmake DESTINATION lib COMPONENT Development)