# CMakeFiles.txt for the libminc library # # Andrew Janke - a.janke@gmail.com # Vladimir S. FONOV - vladimir.fonov@gmail.com cmake_minimum_required(VERSION 3.10) project(LIBMINC) set(LIBMINC_PACKAGE_VERSION_MAJOR 2) set(LIBMINC_PACKAGE_VERSION_MINOR 4) set(LIBMINC_PACKAGE_VERSION_PATCH 06) set(LIBMINC_SOVERSION "5.3.0") set(LIBMINC_PACKAGE "libminc") set(LIBMINC_PACKAGE_BUGREPORT "vladimir.fonov@gmail.com") set(LIBMINC_PACKAGE_NAME "libminc") set(LIBMINC_PACKAGE_VERSION "${LIBMINC_PACKAGE_VERSION_MAJOR}.${LIBMINC_PACKAGE_VERSION_MINOR}.${LIBMINC_PACKAGE_VERSION_PATCH}") set(LIBMINC_PACKAGE_STRING "${LIBMINC_PACKAGE_NAME} ${LIBMINC_PACKAGE_VERSION}") include(CTest) enable_testing() if( POLICY CMP0063 ) cmake_policy(SET CMP0063 NEW) endif() if(MINC_TOOLKIT_BUILD) set(LIBMINC_EXTERNALLY_CONFIGURED ON) endif() set(LIBMINC_BUILD_V2 ON) if(NOT LIBMINC_EXTERNALLY_CONFIGURED) # Allowing User to configure parameters set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules") set(CPACK_GENERATOR TGZ) set(CPACK_PACKAGE_VERSION_MAJOR ${LIBMINC_PACKAGE_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${LIBMINC_PACKAGE_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${LIBMINC_PACKAGE_VERSION_PATCH}) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Medical Imaging library core IO") option(LIBMINC_BUILD_SHARED_LIBS "Build libminc with shared libraries." OFF) option(LIBMINC_MINC1_SUPPORT "Support minc1 file format, requires NETCDF" OFF) #START - ITK option(LIBMINC_BUILD_EZMINC "Build C++ EMINC library based on libminc1" OFF) #END - ITK option(LIBMINC_BUILD_EZMINC_EXAMPLES "Build EZminc examples" OFF) option(LIBMINC_USE_NIFTI "Build with NIfTI support" OFF) option(LIBMINC_USE_SYSTEM_NIFTI "Use system NIfTI-1 library" OFF) option(LIBMINC_USE_ASAN "Build with Address Sanitizer" OFF) set (LIBMINC_EXPORTED_TARGETS "LIBMINC-targets") set (LIBMINC_INSTALL_BIN_DIR bin) set (LIBMINC_INSTALL_LIB_DIR lib${LIB_SUFFIX}) set (LIBMINC_INSTALL_INCLUDE_DIR include) set (LIBMINC_INSTALL_DATA_DIR share) if(LIBMINC_MINC1_SUPPORT) find_package(NETCDF REQUIRED) endif() # external packages find_package(ZLIB REQUIRED) set(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) find_package(HDF5 REQUIRED COMPONENTS C ) if(LIBMINC_USE_NIFTI) if (LIBMINC_USE_SYSTEM_NIFTI) find_package(NIFTI) else() include(ExternalProject) include(BuildNIFTI) build_nifti(${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR}/external) endif() else() set(NIFTI_FOUND OFF) endif() set(HAVE_ZLIB ON) else() #TODO: set paths for HDF5 etc endif() if(NOT DEFINED CMAKE_MACOSX_RPATH) set(CMAKE_MACOSX_RPATH ON) endif() # Configure libminc if(LIBMINC_BUILD_SHARED_LIBS) set(LIBRARY_TYPE SHARED) set(LIBRARY_INSTALL LIBRARY) else() set(LIBRARY_TYPE STATIC) set(LIBRARY_INSTALL ARCHIVE) endif() if(CMAKE_BUILD_TYPE MATCHES Debug) set(DEBUG "1") endif() # add for building relocatable library if(UNIX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") endif() if(LIBMINC_USE_ASAN) add_compile_options(-fno-omit-frame-pointer -fsanitize=address) add_link_options(-fno-omit-frame-pointer -fsanitize=address) endif() # check for prereqs include(CheckFunctionExists) include(CheckSymbolExists) include(CheckLibraryExists) CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) CHECK_FUNCTION_EXISTS(tmpnam HAVE_TMPNAM) CHECK_FUNCTION_EXISTS(tempnam HAVE_TEMPNAM) CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_FUNCTION_EXISTS(popen HAVE_POPEN) CHECK_FUNCTION_EXISTS(fork HAVE_WORKING_FORK) CHECK_FUNCTION_EXISTS(vfork HAVE_WORKING_VFORK) CHECK_FUNCTION_EXISTS(fdopen HAVE_FDOPEN) CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP) CHECK_FUNCTION_EXISTS(getpwnam HAVE_GETPWNAM) CHECK_FUNCTION_EXISTS(select HAVE_SELECT) CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) CHECK_FUNCTION_EXISTS(system HAVE_SYSTEM) if(NOT MSVC) set(CMAKE_REQUIRED_LIBRARIES m) endif() set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE=1 ) CHECK_SYMBOL_EXISTS(rint "math.h" HAVE_RINT) CHECK_SYMBOL_EXISTS(copysign "math.h" HAVE_COPYSIGN) CHECK_SYMBOL_EXISTS(round "math.h" HAVE_ROUND) CHECK_SYMBOL_EXISTS(fabsf "math.h" HAVE_FABSF) unset(CMAKE_REQUIRED_LIBRARIES) unset(CMAKE_REQUIRED_DEFINITIONS) CHECK_FUNCTION_EXISTS(srand48 HAVE_SRAND48) CHECK_FUNCTION_EXISTS(drand48 HAVE_DRAND48) CHECK_FUNCTION_EXISTS(sleep HAVE_SLEEP) CHECK_SYMBOL_EXISTS(gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY) CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME_RT) if(HAVE_CLOCK_GETTIME_RT) set(RT_LIBRARY "rt") set(HAVE_CLOCK_GETTIME ON) else() # first check if the function is defined in header CHECK_SYMBOL_EXISTS(clock_gettime "time.h" HAVE_CLOCK_GETTIME_SYMBOL) # then check that it's available if(HAVE_CLOCK_GETTIME_SYMBOL) try_run(HAVE_CLOCK_GETTIME_RUN HAVE_CLOCK_GETTIME_COMP ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/check_clock_gettime.c ) if(HAVE_CLOCK_GETTIME_RUN EQUAL 0 AND HAVE_CLOCK_GETTIME_COMP) set(HAVE_CLOCK_GETTIME ON) else() set(HAVE_CLOCK_GETTIME OFF) endif() endif() endif() include(CheckIncludeFiles) CHECK_INCLUDE_FILES(sys/dir.h HAVE_SYS_DIR_H) CHECK_INCLUDE_FILES(sys/ndir.h HAVE_SYS_NDIR_H) CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(sys/wait.h HAVE_SYS_WAIT_H) CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILES(dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES(fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES(dlfcn.h HAVE_DLFCN_H) CHECK_INCLUDE_FILES(vfork.h HAVE_VFORK_H) CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) CHECK_INCLUDE_FILES(pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H) add_definitions(-DHAVE_CONFIG_H) add_definitions(-DMINC2=1) if(NOT APPLE) add_definitions(-D_XOPEN_SOURCE=500) endif() # aliases set(VERSION "${LIBMINC_EXTERNAL_LIB_PREFIX}${LIBMINC_PACKAGE_VERSION}") set(HAVE_MINC1 ${LIBMINC_MINC1_SUPPORT}) set(HAVE_MINC2 ON) set(MINC2 "1") if(LIBMINC_MINC1_SUPPORT) add_definitions(-DHAVE_MINC1=1) endif() if(LIBMINC_BUILD_EZMINC) set(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ) endif() if(NIFTI_FOUND) set(LIBMINC_NIFTI_SUPPORT ON) set(LIBMINC_NIFTI_SOURCES volume_io/Volumes/input_nifti.c volume_io/Volumes/input_mgh.c volume_io/Volumes/input_nrrd.c ) endif() # config files for build configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) # others #configure_file(${CMAKE_CURRENT_SOURCE_DIR}/epm-header.in ${CMAKE_CURRENT_BINARY_DIR}/epm-header) # set the master INCLUDE directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/libsrc ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ${HDF5_INCLUDE_DIRS} ) if(LIBMINC_BUILD_EZMINC AND LIBMINC_MINC1_SUPPORT) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ) endif() if(LIBMINC_NIFTI_SUPPORT) include_directories( ${NIFTI_INCLUDE_DIR} ) endif() set(minc_common_SRCS libcommon/minc2_error.c libcommon/minc_config.c libcommon/minc_error.c libcommon/ParseArgv.c libcommon/read_file_names.c libcommon/restructure.c libcommon/time_stamp.c ) set(minc_common_HEADERS libcommon/minc2_error.h libcommon/minc_config.h libcommon/minc_error.h libcommon/ParseArgv.h libcommon/read_file_names.h libcommon/restructure.h libcommon/time_stamp.h libcommon/minc_common_defs.h volume_io/Include/volume_io.h # VF: WTF? ) set(minc1_LIB_SRCS libsrc/dim_conversion.c libsrc/image_conversion.c libsrc/minc_convenience.c libsrc/nd_loop.c libsrc/netcdf_convenience.c libsrc/value_conversion.c libsrc/voxel_loop.c libsrc/hdf_convenience.c libsrc/minc_compat.c libsrc/minc_simple.c libsrc/minc_format_convert.c ) set(minc1_HEADERS libsrc/minc.h libsrc/voxel_loop.h libsrc/nd_loop.h libsrc/minc_compat.h libsrc/minc_simple.h libsrc/minc_format_convert.h ) set(minc2_LIB_SRCS libsrc2/convert.c libsrc2/datatype.c libsrc2/dimension.c libsrc2/free.c libsrc2/grpattr.c libsrc2/hyper.c libsrc2/label.c libsrc2/m2util.c libsrc2/record.c libsrc2/slice.c libsrc2/valid.c libsrc2/volprops.c libsrc2/volume.c ) set(minc2_HEADERS libsrc2/minc2.h libsrc2/minc2_defs.h libsrc2/minc2_structs.h libsrc2/minc2_api.h ) # volume_io2 set(volume_io_LIB_SRCS volume_io/Geometry/colour.c volume_io/Geometry/colour_def.c volume_io/Geometry/gaussian.c volume_io/Geometry/inverse.c volume_io/Geometry/newton.c volume_io/Geometry/points.c volume_io/Geometry/splines.c volume_io/Geometry/tensors.c volume_io/Geometry/transforms.c volume_io/MNI_formats/gen_xf_io.c volume_io/MNI_formats/gen_xfs.c volume_io/MNI_formats/grid_transforms.c volume_io/MNI_formats/mni_io.c volume_io/MNI_formats/tag_points.c volume_io/MNI_formats/thin_plate_spline.c volume_io/Prog_utils/alloc.c volume_io/Prog_utils/alloc_check.c volume_io/Prog_utils/arrays.c volume_io/Prog_utils/files.c volume_io/Prog_utils/print.c volume_io/Prog_utils/progress.c volume_io/Prog_utils/string.c volume_io/Prog_utils/time.c volume_io/Volumes/evaluate.c volume_io/Volumes/get_hyperslab.c volume_io/Volumes/input_free.c volume_io/Volumes/input_mnc.c volume_io/Volumes/input_volume.c volume_io/Volumes/multidim_arrays.c volume_io/Volumes/output_mnc.c volume_io/Volumes/output_volume.c volume_io/Volumes/set_hyperslab.c volume_io/Volumes/volume_cache.c volume_io/Volumes/volumes.c volume_io/Volumes/input_mnc2.c volume_io/Volumes/output_mnc2.c ) if(LIBMINC_NIFTI_SUPPORT) set(volume_io_LIB_SRCS ${volume_io_LIB_SRCS} ${LIBMINC_NIFTI_SOURCES} ) endif() set(volume_io_HEADERS volume_io/Include/volume_io/alloc.h volume_io/Include/volume_io/arrays.h volume_io/Include/volume_io/basic.h volume_io/Include/volume_io/def_math.h volume_io/Include/volume_io/files.h volume_io/Include/volume_io/geom_structs.h volume_io/Include/volume_io/geometry.h volume_io/Include/volume_io/multidim.h volume_io/Include/volume_io/progress.h volume_io/Include/volume_io/string_funcs.h volume_io/Include/volume_io/system_dependent.h volume_io/Include/volume_io/transforms.h volume_io/Include/volume_io/vol_io_prototypes.h volume_io/Include/volume_io/volume.h volume_io/Include/volume_io/volume_cache.h ) #START - ITK set(LIBMINC_LIBRARY ${LIBMINC_EXTERNAL_LIB_PREFIX}minc2) #STOP - ITK # a hack for APPLE if(LIBMINC_BUILD_SHARED_LIBS) #START - ITK set(LIBMINC_LIBRARY_STATIC ${LIBMINC_EXTERNAL_LIB_PREFIX}minc2_static) #STOP - ITK else() set(LIBMINC_LIBRARY_STATIC ${LIBMINC_LIBRARY}) endif() if(LIBMINC_NIFTI_SUPPORT) set(NIFTI_LIBRARIES ${NIFTI_LIBRARY} ${ZNZ_LIBRARY} ) get_filename_component(NIFTI_LIBRARY_NAME "${NIFTI_LIBRARY}" NAME) get_filename_component(ZNZ_LIBRARY_NAME "${ZNZ_LIBRARY}" NAME) else() set(NIFTI_LIBRARIES ) set(NIFTI_LIBRARY ) set(ZNZ_LIBRARY ) set(NIFTI_LIBRARY_NAME ) set(ZNZ_LIBRARY_NAME ) endif() if(NOT HDF5_LIBRARY AND HDF5_LIBRARIES) set(HDF5_LIBRARY ${HDF5_LIBRARIES}) endif() get_filename_component(HDF5_LIBRARY_NAME "${HDF5_LIBRARY}" NAME) get_filename_component(ZLIB_LIBRARY_NAME "${ZLIB_LIBRARY}" NAME) set(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) set(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARY} ${HDF5_LIBRARY_NAME} ${NIFTI_LIBRARY_NAME} ${ZNZ_LIBRARY_NAME} ${ZLIB_LIBRARY_NAME}) #[[START - ITK message("LIBMINC_LIBRARIES_CONFIG=${LIBMINC_LIBRARIES_CONFIG}") #STOP - ITK ]] set(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) set(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY_NAME} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY_NAME}) if(UNIX) set(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m ${CMAKE_DL_LIBS} ${RT_LIBRARY}) set(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m ${CMAKE_DL_LIBS} ${RT_LIBRARY}) set(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES_CONFIG} m ${CMAKE_DL_LIBS} ${RT_LIBRARY_NAME}) set(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} m ${CMAKE_DL_LIBS} ${RT_LIBRARY_NAME}) endif() set(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) set(minc_HEADERS ${minc2_HEADERS} ${minc_common_HEADERS}) if(LIBMINC_MINC1_SUPPORT) set(minc_HEADERS ${minc_HEADERS} ${minc1_HEADERS}) set(minc_LIB_SRCS ${minc_LIB_SRCS} ${minc1_LIB_SRCS}) endif() # Keep this variable for compatibility #START - ITK set(VOLUME_IO_LIBRARY ${LIBMINC_EXTERNAL_LIB_PREFIX}minc2) #STOP - ITK set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) add_library(${LIBMINC_LIBRARY} ${LIBRARY_TYPE} ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) if(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI) add_dependencies(${LIBMINC_LIBRARY} NIFTI) endif() target_link_libraries(${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # if(LIBMINC_MINC1_SUPPORT) include_directories(${NETCDF_INCLUDE_DIR}) target_link_libraries(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) get_filename_component(NETCDF_LIBRARY_NAME "${NETCDF_LIBRARY}" NAME) else() set(NETCDF_LIBRARY_NAME ) endif() if(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED AND NIFTI_FOUND) add_dependencies(minc2 NIFTI) endif() export(TARGETS ${LIBMINC_LIBRARY} FILE "${LIBMINC_EXPORTED_TARGETS}.cmake") if(UNIX) target_link_libraries(${LIBMINC_LIBRARY} m ${CMAKE_DL_LIBS} ) #[[ ITK: Skip static library build if(LIBMINC_BUILD_SHARED_LIBS) add_library(${LIBMINC_LIBRARY_STATIC} STATIC ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) target_link_libraries(${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY} m ${CMAKE_DL_LIBS} ) if(LIBMINC_MINC1_SUPPORT) target_link_libraries(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) endif() endif() #ITK: Skip static library build ]] endif() set_target_properties(${LIBMINC_LIBRARY} PROPERTIES SOVERSION ${LIBMINC_SOVERSION}) if(LIBMINC_MINC1_SUPPORT) set(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} ${NETCDF_LIBRARY} ) set(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} ${NETCDF_LIBRARY} ) set(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES_CONFIG} ${NETCDF_LIBRARY_NAME} ) set(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} ${NETCDF_LIBRARY_NAME} ) endif() if( LIBMINC_INSTALL_LIB_DIR ) install( TARGETS ${LIBMINC_LIBRARY} EXPORT ${LIBMINC_EXPORTED_TARGETS} LIBRARY DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries ARCHIVE DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries RUNTIME DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries ) endif() if(LIBMINC_INSTALL_INCLUDE_DIR AND NOT LIBMINC_INSTALL_NO_DEVELOPMENT) install(FILES ${minc_HEADERS} DESTINATION ${LIBMINC_INSTALL_INCLUDE_DIR} COMPONENT headers ) install(FILES ${volume_io_HEADERS} DESTINATION ${LIBMINC_INSTALL_INCLUDE_DIR}/volume_io COMPONENT headers) endif() if(LIBMINC_BUILD_EZMINC AND LIBMINC_MINC1_SUPPORT) add_subdirectory( ezminc ) set(EZMINC_LIBRARIES minc_io ${LIBMINC_LIBRARIES}) set(EZMINC_LIBRARIES_CONFIG minc_io ${LIBMINC_LIBRARIES_CONFIG}) else() set(EZMINC_LIBRARIES "") set(EZMINC_LIBRARIES_CONFIG "") endif() # config for install dir set(LIBMINC_USE_FILE_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib/cmake/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake" ) set(LIBMINC_INCLUDE_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/include" ) set(LIBMINC_LIBRARY_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib" ) set(LIBMINC_STATIC_LIBRARIES_CONFIG "" ) set(VOLUME_IO_LIBRARY_STATIC "") configure_file(LIBMINCConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINCConfig.cmake @ONLY ) configure_file(UseLIBMINC.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake @ONLY) # configure for build dir set(LIBMINC_USE_FILE_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake) set(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ) if(LIBMINC_MINC1_SUPPORT) set(LIBMINC_INCLUDE_DIRS_CONFIG ${LIBMINC_INCLUDE_DIRS_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/libsrc ) if(LIBMINC_BUILD_EZMINC) set(LIBMINC_INCLUDE_DIRS_CONFIG ${LIBMINC_INCLUDE_DIRS_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ) endif() endif() set(LIBMINC_LIBRARY_DIRS_CONFIG ${CMAKE_CURRENT_BINARY_DIR}) set(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES}) set(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES}) set(EZMINC_LIBRARIES_CONFIG ${EZMINC_LIBRARIES}) if(LIBMINC_MINC1_SUPPORT) set(LIBMINC_LIBRARY_DIRS_CONFIG ${LIBMINC_LIBRARY_DIRS_CONFIG} ${CMAKE_CURRENT_BINARY_DIR}/ezminc) endif() configure_file(LIBMINCConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LIBMINCConfig.cmake @ONLY ) configure_file(UseLIBMINC.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake @ONLY) if(LIBMINC_INSTALL_LIB_DIR AND NOT LIBMINC_INSTALL_NO_DEVELOPMENT) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINCConfig.cmake DESTINATION ${LIBMINC_INSTALL_LIB_DIR}/cmake COMPONENT Development) endif() # testing if(BUILD_TESTING) add_subdirectory(testdir) endif() if(NOT LIBMINC_EXTERNALLY_CONFIGURED) include(CPack) endif()