-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
66 lines (51 loc) · 2.3 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
cmake_minimum_required(VERSION 3.9)
project(typeset)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
##################################################################
####### Misc
##################################################################
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# disables warning about DLL export
# this is annoying when using C++ STL
add_compile_options(/wd4251)
endif()
##################################################################
###### coverage build
##################################################################
if(ENABLE_COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
endif()
##################################################################
####### texnetium library
##################################################################
file(GLOB_RECURSE LIBTYPESET_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE LIBTYPESET_HDR_FILES
${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
)
add_library(texnetium ${LIBTYPESET_HDR_FILES} ${LIBTYPESET_SRC_FILES})
target_include_directories(texnetium PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
foreach(_source IN ITEMS ${LIBTYPESET_HDR_FILES} ${LIBTYPESET_SRC_FILES})
get_filename_component(_source_path "${_source}" PATH)
file(RELATIVE_PATH _source_path_rel "${CMAKE_CURRENT_SOURCE_DIR}" "${_source_path}")
string(REPLACE "/" "\\" _group_path "${_source_path_rel}")
source_group("${_group_path}" FILES "${_source}")
endforeach()
target_compile_definitions(texnetium PUBLIC -DLIBTYPESET_BUILD_LIB)
##################################################################
####### TFM
##################################################################
add_subdirectory(tfm)
##################################################################
####### Tools
##################################################################
add_subdirectory(apps)
##################################################################
####### Tests
##################################################################
add_subdirectory(tests)