liborigin  3.0.0
CMake file
# CMakeLists.txt for liborigin
cmake_minimum_required(VERSION 2.8)
# c++11 standard
add_compile_options(-std=c++11)
# library version
# compile-time configuration variables to be linked in
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# source files
set (sources
)
# header files for development
set (devel-headers
OriginObj.h
tree.hh
)
# LIB_SUFFIX can either be defined at cmake command line: cmake -DLIB_SUFFIX:STRING=64 ...
if (NOT (LIB_SUFFIX STREQUAL "${LIB_SUFFIX}"))
message("LIB_SUFFIX not defined.")
# ... or deduced from size of void ptr
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set( LIB_SUFFIX "64")
else ()
set( LIB_SUFFIX "")
endif ()
message("LIB_SUFFIX set to '${LIB_SUFFIX}'")
endif()
# Generate a pkg-config file matching this config
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/liborigin.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc" @ONLY)
# allow for installation of individual targets
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
# dynamic library
add_library (origin SHARED ${sources})
set_target_properties(origin PROPERTIES
VERSION ${LIBORIGIN_VERSION_MAJOR}.${LIBORIGIN_VERSION_MINOR}.${LIBORIGIN_VERSION_BUGFIX}
SOVERSION ${LIBORIGIN_VERSION_MAJOR} )
# static library
add_library (origin-static STATIC ${sources})
set_target_properties(origin-static PROPERTIES OUTPUT_NAME "origin" POSITION_INDEPENDENT_CODE ON)
# inform on log setting
if (DEFINED GENERATE_CODE_FOR_LOG)
message("File parsing will be logged.")
target_compile_definitions(origin PRIVATE GENERATE_CODE_FOR_LOG=${GENERATE_CODE_FOR_LOG})
target_compile_definitions(origin-static PRIVATE GENERATE_CODE_FOR_LOG=${GENERATE_CODE_FOR_LOG})
else()
message("File parsing will NOT be logged. Define GENERATE_CODE_FOR_LOG to activate logging.")
endif ()
# install libraries
install(TARGETS origin DESTINATION lib${LIB_SUFFIX} OPTIONAL)
install(TARGETS origin-static DESTINATION lib${LIB_SUFFIX} OPTIONAL)
# install headers
install(FILES ${devel-headers} DESTINATION include/liborigin)
# install pkg-config file
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
# command line util
add_executable(opj2dat opj2dat.cpp)
target_link_libraries (opj2dat origin)
add_executable(opj2dat-static opj2dat.cpp)
target_link_libraries (opj2dat-static origin-static)
install(PROGRAMS opj2dat-static RENAME opj2dat DESTINATION bin OPTIONAL)
install(TARGETS opj2dat DESTINATION bin OPTIONAL)
# documentation
install(FILES COPYING FORMAT README DESTINATION share/doc/liborigin OPTIONAL)
configure_file(doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
find_package(Doxygen)
if(DOXYGEN_FOUND)
add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/html)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/liborigin OPTIONAL)
endif(DOXYGEN_FOUND)