# Project project(inotify-cxx) set(MAJOR_VERSION 0) set(MINOR_VERSION 7) set(SUB_VERSION 4) set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}.${SUB_VERSION}) SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}") # CMake if("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE Debug) endif("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_COLOR_MAKEFILE ON) cmake_minimum_required(VERSION 2.6 FATAL_ERROR) # Packaging set(CPACK_COMPONENTS_ALL sharedlibs staticlibs headers) set(CPACK_COMPONENT_SHAREDLIBS_DISPLAY_NAME "Shared libraries") set(CPACK_COMPONENT_STATICLIBS_DISPLAY_NAME "Static libraries") set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers") set(CPACK_COMPONENT_SHAREDLIBS_DESCRIPTION "Shared library for general use.") set(CPACK_COMPONENT_STATICLIBS_DESCRIPTION "Static library, used to embed everything in your executable.") set(CPACK_COMPONENT_HEADERS_DESCRIPTION "C/C++ header files.") set(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development") set(CPACK_COMPONENT_STATICLIBS_GROUP "Development") set(CPACK_COMPONENT_HEADERS_GROUP "Development") # Create suffix to eventually install in lib64 #IF(CMAKE_SIZEOF_VOID_P EQUAL 4) SET(LIB_SUFFIX "") SET(PACK_ARCH "") # ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) # SET(LIB_SUFFIX 64) # SET(PACK_ARCH .x86_64) #endif(CMAKE_SIZEOF_VOID_P EQUAL 4) # Package information set(CPACK_PACKAGE_VERSION ${VERSION_STRING}) set(CPACK_PACKAGE_CONTACT "Gerd v. Egidy ") set(CPACK_PACKAGE_DESCRIPTION "C++ Library to access inotify") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${CPACK_PACKAGE_DESCRIPTION} ) # Package settings set(CPACK_GENERATOR "DEB;RPM") set(CPACK_CMAKE_GENERATOR "Unix Makefiles") set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}${PACK_ARCH}) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE-GPL) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE-LGPL) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE-X11) set(CPACK_SOURCE_GENERATOR TGZ) set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) set(CPACK_SET_DESTDIR "ON") set(cpp_sources inotify-cxx.cpp) set(cpp_headers inotify-cxx.h) # shared lib add_library(inotify-cxx SHARED ${cpp_sources}) set_target_properties(inotify-cxx PROPERTIES VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${SUB_VERSION} SOVERSION 0) # increase SOVERSION on every backwards-incompatible change! # static lib add_library(inotify-cxx-static STATIC ${cpp_sources}) set_target_properties(inotify-cxx-static PROPERTIES OUTPUT_NAME "inotify-cxx") # Prevent clobbering each other during the build set_target_properties(inotify-cxx PROPERTIES CLEAN_DIRECT_OUTPUT 1) set_target_properties(inotify-cxx-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) install( TARGETS inotify-cxx LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT sharedlibs ) install( TARGETS inotify-cxx-static ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT staticlibs ) install( FILES ${cpp_headers} DESTINATION include COMPONENT headers ) # pkgconfig set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin) set(includedir ${CMAKE_INSTALL_PREFIX}/include) set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) configure_file(${CMAKE_SOURCE_DIR}/inotify-cxx.pc.in ${CMAKE_BINARY_DIR}/inotify-cxx.pc @ONLY) install(FILES ${CMAKE_BINARY_DIR}/inotify-cxx.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) include(CPack)