97 lines
2.6 KiB
CMake
Executable File
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()
|
|
|