forked from MaaXYZ/MaaFramework
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
147 lines (117 loc) · 4.45 KB
/
CMakeLists.txt
File metadata and controls
147 lines (117 loc) · 4.45 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
cmake_minimum_required(VERSION 3.28)
project(MaaFw)
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
include(source/MaaUtils/MaaUtils.cmake)
option(WITH_ADB_CONTROLLER "build with adb controller" ON)
option(WITH_WIN32_CONTROLLER "build with win32 controller" ON)
option(WITH_MACOS_CONTROLLER "build with macOS controller" ON)
option(WITH_DBG_CONTROLLER "build with debugging controller" OFF)
option(WITH_CUSTOM_CONTROLLER "build with custom controller" ON)
option(WITH_PLAYCOVER_CONTROLLER "build with PlayCover controller for macOS" ON)
option(WITH_GAMEPAD_CONTROLLER "build with virtual gamepad controller for Windows" ON)
option(WITH_WLROOTS_CONTROLLER "build with wlroots controller for Linux" ON)
option(WITH_NODEJS_BINDING "build with nodejs binding" OFF)
option(WITH_QUICKJS_BINDING "build with quickjs binding" OFF)
option(WITH_MAA_AGENT "build with MaaAgent" ON)
option(BUILD_PICLI "build maa picli" ON)
option(BUILD_SAMPLE "build a demo" OFF)
option(BUILD_PIPELINE_TESTING "build pipeline testing" OFF)
option(BUILD_DLOPEN_TESTING "build dlopen testing" OFF)
option(BUILD_NODE_TEST "build node test" OFF)
option(BUILD_MACOS_TEST "build macOS test" OFF)
option(ENABLE_CCACHE "enable ccache if possible" ON)
option(ENABLE_HASH_VERSION "enable hash version from git" OFF)
# option(ENABLE_CPP20_MODULES "enable C++20 modules" ON)
set(MAA_PUBLIC_INC ${CMAKE_SOURCE_DIR}/include)
set(MAA_PRIVATE_INC ${CMAKE_SOURCE_DIR}/source/include)
# Disable unavailable options
if(NOT WITH_DBG_CONTROLLER)
message(STATUS "Dbg controller is disabled, disable BUILD_PIPELINE_TESTING")
set(BUILD_PIPELINE_TESTING OFF)
endif()
if(WITH_WIN32_CONTROLLER AND NOT WIN32)
message(STATUS "Not on Windows, disable WITH_WIN32_CONTROLLER")
set(WITH_WIN32_CONTROLLER OFF)
endif()
if(WITH_MACOS_CONTROLLER AND NOT APPLE)
message(STATUS "Not on macOS, disable WITH_MACOS_CONTROLLER")
set(WITH_MACOS_CONTROLLER OFF)
endif()
if(WITH_GAMEPAD_CONTROLLER AND NOT WIN32)
message(STATUS "Not on Windows, disable WITH_GAMEPAD_CONTROLLER")
set(WITH_GAMEPAD_CONTROLLER OFF)
endif()
if(WITH_PLAYCOVER_CONTROLLER AND NOT APPLE)
message(STATUS "Not on macOS, disable WITH_PLAYCOVER_CONTROLLER")
set(WITH_PLAYCOVER_CONTROLLER OFF)
endif()
if(WITH_WLROOTS_CONTROLLER AND (NOT LINUX OR ANDROID))
message(STATUS "Not on Linux, disable WITH_WLROOTS_CONTROLLER")
set(WITH_WLROOTS_CONTROLLER OFF)
endif()
if(WITH_MAA_AGENT)
find_package(cppzmq REQUIRED)
endif()
add_subdirectory(3rdparty)
add_subdirectory(source)
add_subdirectory(tools)
if(BUILD_SAMPLE)
add_subdirectory(sample/cpp)
endif()
if(BUILD_PIPELINE_TESTING)
add_subdirectory(test/pipeline)
add_subdirectory(test/TestingDataSet)
endif()
if(BUILD_DLOPEN_TESTING)
add_subdirectory(test/dlopen)
endif()
if(BUILD_NODE_TEST)
add_subdirectory(tools/NodeTest)
endif()
if(BUILD_MACOS_TEST)
add_subdirectory(test/macos_test)
endif()
maadeps_install(bin)
install(
TARGETS MaaUtils
EXPORT MaaFrameworkTargets
RUNTIME DESTINATION bin
LIBRARY DESTINATION bin # ARCHIVE DESTINATION lib
)
if(WIN32)
install(FILES $<TARGET_PDB_FILE:MaaUtils> DESTINATION symbol OPTIONAL)
endif()
install(
EXPORT MaaFrameworkTargets
FILE MaaFramework.cmake
NAMESPACE MaaFramework::
DESTINATION "share/cmake/MaaFramework")
if(WITH_MAA_AGENT)
install(
EXPORT MaaAgentServerTargets
FILE MaaAgentServer.cmake
NAMESPACE MaaAgentServer::
DESTINATION "share/cmake/MaaAgentServer")
endif()
include(CMakePackageConfigHelpers)
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/MaaFrameworkConfig.cmake.in "MaaFrameworkConfig.cmake"
INSTALL_DESTINATION share/cmake/MaaFramework)
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/MaaAgentServerConfig.cmake.in "MaaAgentServerConfig.cmake"
INSTALL_DESTINATION share/cmake/MaaAgentServer)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/MaaFrameworkConfig.cmake"
DESTINATION share/cmake/MaaFramework)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/MaaAgentServerConfig.cmake"
DESTINATION share/cmake/MaaAgentServer)
if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/export_targets.cmake)
message("Load export_targets.cmake")
include(${CMAKE_CURRENT_LIST_DIR}/export_targets.cmake)
# cmake-format: off
#
# specify export compile commands for target like this
#
# if(TARGET sample_maapp_coro)
# set_target_properties(sample_maapp_coro PROPERTIES EXPORT_COMPILE_COMMANDS ON)
# endif()
#
# cmake-format: on
endif()