cmake_minimum_required(VERSION 2.8) project(BlackDynamite) set(BLACKDYNAMITE_MAJOR_VERSION 1) set(BLACKDYNAMITE_MINOR_VERSION 0) set(BLACKDYNAMITE_BUILD_VERSION 0) set(BLACKDYNAMITE_VERSION "${BLACKDYNAMITE_MAJOR_VERSION}.${BLACKDYNAMITE_MINOR_VERSION}.${BLACKDYNAMITE_BUILD_VERSION}" ) #=============================================================================== # Project includes #=============================================================================== set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries.") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") find_package(PQXX REQUIRED) if(PQXX_FOUND) list(APPEND BLACKDYNAMITE_EXTERNAL_INCLUDE_DIR ${PQXX_INCLUDE_DIR}) list(APPEND BLACKDYNAMITE_EXTERNAL_LIBRARIES ${PQXX_LIBRARIES}) endif() set(BLACKDYNAMITE_SOURCES src/pusher.cc ) set(BLACKDYNAMITE_COMMON_HEADERS src/pusher.hh ) #=============================================================================== # Library definition #=============================================================================== include_directories(${BLACKDYNAMITE_EXTERNAL_INCLUDE_DIR}) add_library(blackdynamite ${BLACKDYNAMITE_SOURCES}) target_link_libraries(blackdynamite ${BLACKDYNAMITE_EXTERNAL_LIBRARIES}) set_target_properties(blackdynamite PROPERTIES PUBLIC_HEADER "${BLACKDYNAMITE_COMMON_HEADERS}" VERSION "${BLACKDYNAMITE_VERSION}" SOVERSION "${BLACKDYNAMITE_MAJOR_VERSION}.${BLACKDYNAMITE_MINOR_VERSION}" ) #=============================================================================== # Install files #=============================================================================== export(TARGETS blackdynamite FILE "${PROJECT_BINARY_DIR}/BlackDynamiteLibraryDepends.cmake") export(PACKAGE BlackDynamite) # Tweak for when BlackDynamite is a subproject if(NOT BLACKDYNAMITE_TARGETS_EXPORT) set(BLACKDYNAMITE_TARGETS_EXPORT BlackDynamiteLibraryDepends) endif() install(TARGETS blackdynamite EXPORT ${BLACKDYNAMITE_TARGETS_EXPORT} LIBRARY DESTINATION lib COMPONENT shlib PUBLIC_HEADER DESTINATION include/blackdynamite COMPONENT dev ) if("${BLACKDYNAMITE_TARGETS_EXPORT}" STREQUAL "BlackDynamiteLibraryDepends") install(EXPORT BlackDynamiteLibraryDepends DESTINATION lib/blackdynamite COMPONENT dev) endif() configure_file(BlackDynamiteConfig.cmake.in "${PROJECT_BINARY_DIR}/BlackDynamiteConfig.cmake" @ONLY) #=============================================================================== # Python part #=============================================================================== set(BLACKDYNAMITE_PY_SETUP ${PROJECT_BINARY_DIR}/python/setup.py) file(COPY python/BlackDynamite DESTINATION python) configure_file(python/setup.py.cmake ${BLACKDYNAMITE_PY_SETUP}) install(CODE "EXECUTE_PROCESS(COMMAND python ${BLACKDYNAMITE_PY_SETUP} install --prefix=${CMAKE_INSTALL_PREFIX})") install(DIRECTORY ${PROJECT_SOURCE_DIR}/bin DESTINATION bin FILE_PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)