|
cmake_minimum_required(VERSION 3.11.0 FATAL_ERROR)
|
|
project(bugdemo)
|
|
|
|
# Need at least these compiler versions
|
|
set(GCC_MIN_VERSION 8.3.0)
|
|
|
|
# Enforce C++17
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Add a few compiler warnings on top
|
|
add_compile_options("-Wall")
|
|
add_compile_options("-Wextra")
|
|
add_compile_options("-Wno-c++98-compat")
|
|
add_compile_options("-Wno-c++98-compat-pedantic")
|
|
|
|
# Wt is full of these, shut them up
|
|
add_compile_options("-Wno-unused-parameter")
|
|
add_compile_options("-Wno-deprecated-copy")
|
|
|
|
# Don't build extras
|
|
set(BUILD_EXAMPLES OFF CACHE BOOL "Don't build Wt examples")
|
|
set(BUILD_TESTS OFF CACHE BOOL "Don't build Wt tests")
|
|
set(ENABLE_LIBWTTEST OFF CACHE BOOL "Don't build Wt tests")
|
|
set(ENABLE_MYSQL OFF CACHE BOOL "Don't build Wt MySql backend")
|
|
set(ENABLE_MSSQLSERVER OFF CACHE BOOL "Don't build Wt MS SQL backend")
|
|
|
|
# Submodules
|
|
add_subdirectory(wt)
|
|
|
|
# Put our executables in the root directory
|
|
add_executable(bugdemo bug.cpp)
|
|
|
|
# Wt needs to link against Boost as well
|
|
find_package(Boost 1.65 COMPONENTS system REQUIRED)
|
|
target_link_libraries(bugdemo PRIVATE ${Boost_LIBRARIES})
|
|
|
|
# Link to Wt; we set Wt_INCLUDE_DIR correctly in dependencies
|
|
target_include_directories(bugdemo PRIVATE ${CMAKE_CURRENT_LIST_DIR}/wt/src)
|
|
target_link_libraries(bugdemo PRIVATE wt wthttp)
|
|
|
|
# We also need to be able to include WConfig.h, which is generated by cmake
|
|
target_include_directories(bugdemo PRIVATE ${CMAKE_BINARY_DIR}/wt)
|