project(WFR-lib C CXX) cmake_minimum_required(VERSION 2.8) # cmake options OPTION(BUILD_WFR_SHARED "Build libwfr as shared library" ON) # Compiler flags set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -DNDEBUG -Wall") set(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -DNDEBUG -Wall") #set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall") #set(CMAKE_C_FLAGS_RELEASE "-O3 -Wall") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}") #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_RELEASE}") # Initialize variables set(WFR_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) set(WFR_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(WFR_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") set(wfr_add_include_dirs "") set(wfr_cpp_files "") # Check whether we are called by another script get_directory_property(hasParent PARENT_DIRECTORY) # Override default libs install directory if (NOT hasParent) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/dist") endif() endif() # Include third-party stuff include(third-party/cmake.inc) # Include wfr source code include(src/cmake.inc) # Set include dir and compiler command line options for compiling include_directories(${WFR_INCLUDE_DIR} ${Libodb_common_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${Libodb_sqlite_INCLUDE_DIR} ${Rapidjson_INCLUDE_DIR} ${wfr_add_include_dirs}) ADD_DEFINITIONS( -std=c++11 -Wno-unknown-pragmas ) # Add wfr library if (BUILD_WFR_SHARED) add_library(wfr_lib SHARED ${wfr_cpp_files}) set(WFR_LIBRARY_EXTENSION ".so") else() add_library(wfr_lib STATIC ${wfr_cpp_files}) set(WFR_LIBRARY_EXTENSION ".a") endif() add_dependencies(wfr_lib libodb sqlite3 Boost) set_target_properties(wfr_lib PROPERTIES OUTPUT_NAME wfr) # Set variables set(WFR_LIBRARIES wfr_lib "${Boost_LIBRARIES}" "${Libodb_sqlite_LIBRARIES}" "${Libodb_common_LIBRARIES}" "${Sqlite3_LIBRARIES}" pthread dl ) message("WFR_LIBRARIES: ${WFR_LIBRARIES}") message("Boost_LIBRARIES: ${Boost_LIBRARIES}") message("Libodb_sqlite_LIBRARIES: ${Libodb_sqlite_LIBRARIES}") message("Libodb_common_LIBRARIES: ${Libodb_common_LIBRARIES}") message("Sqlite3_LIBRARIES: ${Sqlite3_LIBRARIES}") # Where to install the wfr stuff install(DIRECTORY ${WFR_INCLUDE_DIR} DESTINATION ${CMAKE_INSTALL_PREFIX}) install(TARGETS wfr_lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/wfr-config.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}) # Provide some variables to parent script if(hasParent) set(WFR_FOUND "TRUE" PARENT_SCOPE) set(WFR_DIR "${WFR_DIR}" PARENT_SCOPE) set(WFR_INCLUDE_DIR "${WFR_INCLUDE_DIR}" PARENT_SCOPE) set(WFR_LIBRARY_DIR "${WFR_LIBRARY_DIR}" PARENT_SCOPE) set(WFR_LIBRARIES ${WFR_LIBRARIES} PARENT_SCOPE) endif()