2 cmake_minimum_required(VERSION 3.5)
5 project(YAMML VERSION ${PROJECT_VERSION})
7 find_package(Boost COMPONENTS unit_test_framework REQUIRED)
9 set(CMAKE_CXX_STANDARD 14)
10 set(CMAKE_CXX_STANDARD_REQUIRED ON)
12 set(PEGTLIncludeDir "../PEGTL" CACHE PATH "PEGTL include directory")
13 set(YAMMLStaticLink FALSE CACHE BOOL "Link libraries statically")
14 set(YAMMLStaticCRT FALSE CACHE BOOL "Use static link CRT")
16 if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
17 set(UsePCH TRUE CACHE BOOL "Use precompiled headers")
19 set(UsePCH FALSE CACHE BOOL "Use precompiled headers")
22 include(cmake/common.cmake)
25 -DYAMML_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}
26 -DYAMML_VERSION_MINOR=${PROJECT_VERSION_MINOR}
27 -DYAMML_VERSION_DATE=${PROJECT_VERSION_PATCH}
28 -DYAMML_VERSION_BUILD=${PROJECT_VERSION_TWEAK}
31 if((${MSVC14} EQUAL 1) AND (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 19.00.23918))
32 add_definitions(-D_HAS_VARIABLE_TEMPLATES=1)
36 # http://stackoverflow.com/questions/14172856/cmake-compile-with-mt-instead-of-md
40 CMAKE_CXX_FLAGS_RELEASE
45 foreach(CompilerFlag ${CompilerFlags})
46 string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
49 set(Boost_USE_STATIC_RUNTIME ON)
53 set(YAMMLLibLinkType "STATIC")
54 set(Boost_USE_STATIC_LIBS ON)
56 set(YAMMLLibLinkType "SHARED")
59 include_directories("include" ${Boost_INCLUDE_DIRS})
60 link_directories(${Boost_LIBRARY_DIRS})
63 add_subdirectory(test)