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)