-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
85 lines (67 loc) · 2.41 KB
/
Copy pathCMakeLists.txt
File metadata and controls
85 lines (67 loc) · 2.41 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
cmake_minimum_required(VERSION 3.14)
project(App VERSION 0.1)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(PROFILE 0)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE DEBUG)
endif()
function(export_headers TARGET HEADER_SOURCE_DIR HEADER_DEST_DIR)
file(GLOB_RECURSE EXPORT_HEADERS CONFIGURE_DEPENDS
RELATIVE "${HEADER_SOURCE_DIR}"
"${HEADER_SOURCE_DIR}/*.h*"
)
foreach(HEADER ${EXPORT_HEADERS})
get_filename_component(HEADER_DIRECTORY "${HEADER}" DIRECTORY)
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory "${HEADER_DEST_DIR}/${HEADER_DIRECTORY}"
)
if (MSVC)
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND if not exist "${HEADER_DEST_DIR}/${HEADER}" \( mklink /h "${HEADER_DEST_DIR}/${HEADER}" "${HEADER_SOURCE_DIR}/${HEADER}" \)
)
else()
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ln -sf "${HEADER_SOURCE_DIR}/${HEADER}" "${HEADER_DEST_DIR}/${HEADER}"
)
endif()
endforeach(HEADER)
endfunction()
function(export_add_headers TARGET KIND)
message("List dir " ${CMAKE_CURRENT_LIST_DIR})
message("Bin dir " ${CMAKE_CURRENT_BINARY_DIR})
export_headers(${TARGET} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/include/${TARGET})
target_include_directories(${TARGET} ${KIND} ${CMAKE_CURRENT_BINARY_DIR}/include)
endfunction()
set(wxWidgets_USE_DEBUG True)
set(JUST_INSTALL_CEREAL True)
set(OpenGL_GL_PREFERENCE GLVND)
set(FT_DISABLE_HARFBUZZ True)
set(FT_REQUIRE_HARFBUZZ False)
if (MSVC)
add_compile_options(/W4 /WX)
add_compile_options(
$<$<CONFIG:RELEASE>:/O3>
$<$<CONFIG:DEBUG>:/O0>
$<$<CONFIG:DEBUG>:/g>
)
else()
add_compile_options(-Wno-unused-variable)
add_compile_options(-Wall -Wextra -pedantic -Wno-unused-variable -ftemplate-backtrace-limit=0)
add_compile_options(
$<$<CONFIG:RELEASE>:-O3>
$<$<CONFIG:DEBUG>:-O0>
$<$<CONFIG:DEBUG>:-g>
$<$<CONFIG:DEBUG>:-fsanitize=address>
)
add_link_options(
$<$<CONFIG:DEBUG>:-fsanitize=address>
)
endif()
configure_file(AppInfo.h.in ${PROJECT_SOURCE_DIR}/src/AppInfo.h)
find_package(wxWidgets REQUIRED COMPONENTS core base html adv gl)
include(${wxWidgets_USE_FILE})
add_subdirectory(external)
add_subdirectory(src)
add_subdirectory(tools)
unset(CMAKE_BUILD_TYPE CACHE)