You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.0 KiB

cmake_minimum_required (VERSION 3.0.2)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/share/cmake_modules/")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
set(project_name toREST)
project (${project_name})
find_package(Boost COMPONENTS regex system thread coroutine context filesystem date_time REQUIRED)
find_package(LibTorrent REQUIRED)
find_package(OpenSSL REQUIRED)
set(BT_INCLUDE_DIR ./include)
set(LIB_INCLUDE_DIR ./lib)
file(GLOB source_files "./src/*.cpp")
include_directories(
${Boost_INCLUDE_DIRS}
${OPENSSL_INCLUDE_DIR}
${LIBTORRENT_INCLUDE_DIR}
${BT_INCLUDE_DIR}
${LIB_INCLUDE_DIR}
)
set(global_libraries
${Boost_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${LIBTORRENT_LIBRARY}
${OPENSSL_CRYPTO_LIBRARY}
)
add_library(project_shared OBJECT ${source_files})
enable_testing()
file(GLOB test_files "./tests/*.cpp")
file(GLOB test_stubs "./tests/stubs/*.cpp")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -Wall -fprofile-arcs -ftest-coverage ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -Wall -fprofile-arcs -ftest-coverage ")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage ")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage ")
set(test test_${project_name})
add_test(${test} ${test})
add_executable(${test} ${test_files} ${test_stubs} $<TARGET_OBJECTS:project_shared>)
target_include_directories(${test} PUBLIC ../lib/Catch ./tests/include)
target_link_libraries(${test} ${global_libraries})
add_executable(${project_name} ./src/main.cxx $<TARGET_OBJECTS:project_shared>)
target_link_libraries(${project_name} ${global_libraries})
find_package(Doxygen)
if(DOXYGEN_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target(doc
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../include
COMMENT "Generating API documentation with Doxygen to ${CMAKE_CURRENT_BINARY_DIR}" VERBATIM
)
endif(DOXYGEN_FOUND)