qtpromise/CMakeLists.txt

53 lines
1.2 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.8)
if(DEFINED PROJECT_NAME)
set(SUBPROJECT ON)
endif()
project(qtpromise VERSION 0.5.0 LANGUAGES CXX)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
find_package(Qt5 5.6.0 REQUIRED COMPONENTS Core)
set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library(qtpromise INTERFACE)
add_library(qtpromise::qtpromise ALIAS qtpromise)
target_link_libraries(qtpromise INTERFACE Qt5::Core)
target_include_directories(qtpromise INTERFACE "${CMAKE_CURRENT_LIST_DIR}/include")
add_definitions(
-DQT_DEPRECATED_WARNINGS
-DQT_NO_KEYWORDS
)
# https://github.com/simonbrunel/qtpromise/issues/10
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
# https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
add_compile_options(
-Werror
-Wpedantic
-Wall
-Wextra
-Wconversion
-Wsign-conversion
-Wold-style-cast
-Wunused-local-typedefs
-pedantic-errors
)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
# https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level
add_compile_options(
/WX
)
endif()
if(NOT SUBPROJECT)
enable_testing()
add_subdirectory(tests)
endif()