Project

General

Profile

Bug #7059 » CMakeLists.txt

CMake config for minimal example - Captain Crutches, 05/18/2019 05:51 AM

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