52 lines
1.4 KiB
CMake
52 lines
1.4 KiB
CMake
# Find required packages
|
|
FIND_PACKAGE(PNG QUIET)
|
|
if(PNG_FOUND)
|
|
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIRS})
|
|
ADD_DEFINITIONS(${PNG_DEFINITIONS})
|
|
SET(_USE_PNG TRUE CACHE INTERNAL "")
|
|
else()
|
|
SET(PNG_LIBRARIES "")
|
|
endif()
|
|
FIND_PACKAGE(JPEG QUIET)
|
|
if(JPEG_FOUND)
|
|
INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
|
|
ADD_DEFINITIONS(${JPEG_DEFINITIONS})
|
|
SET(_USE_JPG TRUE CACHE INTERNAL "")
|
|
else()
|
|
SET(JPEG_LIBRARIES "")
|
|
endif()
|
|
FIND_PACKAGE(TIFF QUIET)
|
|
if(TIFF_FOUND)
|
|
INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
|
|
ADD_DEFINITIONS(${TIFF_DEFINITIONS})
|
|
SET(_USE_TIFF TRUE CACHE INTERNAL "")
|
|
else()
|
|
SET(TIFF_LIBRARIES "")
|
|
endif()
|
|
|
|
# List sources files
|
|
FILE(GLOB LIBRARY_FILES_C "*.cpp")
|
|
FILE(GLOB LIBRARY_FILES_H "*.h" "*.inl")
|
|
|
|
cxx_library_with_type(IO "Libs" "" "${cxx_default}"
|
|
${LIBRARY_FILES_C} ${LIBRARY_FILES_H}
|
|
)
|
|
|
|
# Manually set Common.h as the precompiled header
|
|
IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16.0)
|
|
TARGET_PRECOMPILE_HEADERS(IO PRIVATE "Common.h")
|
|
endif()
|
|
|
|
# Link its dependencies
|
|
TARGET_LINK_LIBRARIES(IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS})
|
|
|
|
# Install
|
|
SET_TARGET_PROPERTIES(IO PROPERTIES
|
|
PUBLIC_HEADER "${LIBRARY_FILES_H}")
|
|
INSTALL(TARGETS IO
|
|
EXPORT OpenMVSTargets
|
|
LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
|
|
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
|
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
|
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/IO")
|