Files
WFR-lib/CMakeLists.txt
2017-04-11 15:49:21 +02:00

97 lines
2.6 KiB
CMake
Executable File

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()