cmake_minimum_required(VERSION 3.2.2) PROJECT (H4H5_LIB_SRC C CXX) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- LINK_DIRECTORIES ( ${H4H5_LIB_SRC_BINARY_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ) INCLUDE_DIRECTORIES (${H4H5_LIB_SRC_SOURCE_DIR} ${HDF4_INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS}) set (H4H5_LIB_SRC_CSRCS ${H4H5_LIB_SRC_SOURCE_DIR}/H4TOH5I.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5anno.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5pal.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5sds.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5util.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vdata.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vgroup.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5image.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5main.c ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5eos.c ) set (H4H5_PUBLIC_HEADERS ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5.h ${H4H5_LIB_SRC_SOURCE_DIR}/H4TOH5api_adpt.h ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vector.h ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5apicompatible.h ) if (H5_USE_HDFEOS2) add_definitions (-DHAVE_LIBHDFEOS) endif () add_library (${H4H5_SRC_LIB_TARGET} STATIC ${H4H5_LIB_SRC_CSRCS} ${H4H5_PUBLIC_HEADERS}) if (H5_USE_16_API_DEFAULT) add_definitions (-DH5_USE_16_API) endif () TARGET_C_PROPERTIES (${H4H5_SRC_LIB_TARGET} STATIC " " " ") if (MSVC) target_link_libraries (${H4H5_SRC_LIB_TARGET} "ws2_32.lib") endif () target_link_libraries (${H4H5_SRC_LIB_TARGET} ${LINK_LIBS}) SET_GLOBAL_VARIABLE (H4H5_LIBRARIES_TO_EXPORT "${H4H5_LIBRARIES_TO_EXPORT};${H4H5_SRC_LIB_TARGET}") H4H5_SET_LIB_OPTIONS (${H4H5_SRC_LIB_TARGET} ${H4H5_SRC_LIB_NAME} STATIC) set_target_properties (${H4H5_SRC_LIB_TARGET} PROPERTIES FOLDER libraries INTERFACE_INCLUDE_DIRECTORIES "$/include>" ) set (install_targets ${H4H5_SRC_LIB_TARGET}) if (BUILD_SHARED_LIBS) add_library (${H4H5_SRC_LIBSH_TARGET} SHARED ${H4H5_LIB_SRC_CSRCS} ${H4H5_PUBLIC_HEADERS}) if (H5_USE_16_API_DEFAULT) add_definitions (-DH5_USE_16_API) endif () TARGET_C_PROPERTIES (${H4H5_SRC_LIBSH_TARGET} SHARED " " " ") if (MSVC) target_link_libraries (${H4H5_SRC_LIBSH_TARGET} "ws2_32.lib") endif () target_link_libraries (${H4H5_SRC_LIBSH_TARGET} ${LINK_SHLIBS}) SET_GLOBAL_VARIABLE (H4H5_LIBRARIES_TO_EXPORT "${H4H5_LIBRARIES_TO_EXPORT};${H4H5_SRC_LIBSH_TARGET}") H4H5_SET_LIB_OPTIONS (${H4H5_SRC_LIBSH_TARGET} ${H4H5_SRC_LIB_NAME} SHARED) set_target_properties (${H4H5_SRC_LIBSH_TARGET} PROPERTIES FOLDER libraries COMPILE_DEFINITIONS "H4H5_BUILT_AS_DYNAMIC_LIB" INTERFACE_INCLUDE_DIRECTORIES "$/include>" INTERFACE_COMPILE_DEFINITIONS H4H5_BUILT_AS_DYNAMIC_LIB=1 ) set (install_targets ${install_targets} ${H4H5_SRC_LIBSH_TARGET}) endif () #----------------------------------------------------------------------------- # Add file(s) to CMake Install #----------------------------------------------------------------------------- if (NOT H4H5_INSTALL_NO_DEVELOPMENT) install ( FILES ${H4H5_PUBLIC_HEADERS} DESTINATION ${H4H5_INSTALL_INCLUDE_DIR} COMPONENT headers ) endif () #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- if (H4H5_EXPORTED_TARGETS) if (BUILD_SHARED_LIBS) INSTALL_TARGET_PDB (${H4H5_SRC_LIBSH_TARGET} ${H4H5_INSTALL_LIB_DIR} libraries) endif () install ( TARGETS ${install_targets} EXPORT ${H4H5_EXPORTED_TARGETS} LIBRARY DESTINATION ${H4H5_INSTALL_LIB_DIR} COMPONENT libraries ARCHIVE DESTINATION ${H4H5_INSTALL_LIB_DIR} COMPONENT libraries RUNTIME DESTINATION ${H4H5_INSTALL_BIN_DIR} COMPONENT libraries ) endif ()