-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
77 lines (60 loc) · 2.78 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
67
68
69
70
71
72
73
74
75
76
77
cmake_minimum_required(VERSION 3.22)
project(khawasu_pc)
set(CMAKE_CXX_STANDARD 23)
set(FRESH_BUILD_SKIP_ESPIDF_COMPONENT 1)
#set(FRESH_DISABLE_TRACING 1)
set(FRESH_BUILD_SKIP_ESPIDF_STANDALONE 1)
# Get latest git commit hash
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT DEFINED ENV{KHAWASU_ROOT})
message(FATAL_ERROR "KHAWASU_ROOT environment variable is not defined")
endif()
set(KHAWASU_ROOT $ENV{KHAWASU_ROOT})
add_subdirectory(${KHAWASU_ROOT}/thirdparties/fresh ${CMAKE_BINARY_DIR}/fresh)
add_subdirectory(${KHAWASU_ROOT}/khawasu/khawasu_core ${CMAKE_BINARY_DIR}/khawasu_core)
# link sockets
if (WIN32)
message("WINDOWS detected")
set(KHAWASU_PC_SRCS socket/winsocket.cpp)
set(KHAWASU_PC_LIBS ws2_32 winmm comctl32)
endif ()
if (UNIX)
message("UNIX detected")
set(KHAWASU_PC_SRCS socket/unixsocket.cpp)
set(KHAWASU_PC_LIBS pthread)
endif ()
set(KHAWASU_PC_SRCS ${KHAWASU_PC_SRCS} interfaces/mesh_socket_interface.cpp)
set(KHAWASU_PC_LIBS ${KHAWASU_PC_LIBS} fresh_static khawasu_core)
# Add PhyDeviceManager
set(KHAWASU_PC_SRCS ${KHAWASU_PC_SRCS} device_info.cpp phy_device_manager.cpp logical_callback_device.cpp)
add_executable(hwctrl main.cpp ${KHAWASU_PC_SRCS} arg_parser.h khawasu_app.cpp khawasu_app.h config.h)
add_executable(khawasu_pc_client main_client.cpp ${KHAWASU_PC_SRCS} arg_parser.h)
add_executable(khawasu_capi_test khawasu_capi_test.cpp c_api.cpp ${KHAWASU_PC_SRCS})
add_library(khawasu_pc STATIC ${KHAWASU_PC_SRCS})
add_library(khawasu_capi SHARED c_api.cpp ${KHAWASU_PC_SRCS})
target_include_directories(khawasu_pc PUBLIC "./" "socket/")
# Add TomlPlusPlus
target_include_directories(hwctrl PUBLIC thirdparties/tomlplusplus/)
target_link_libraries(hwctrl PUBLIC ${KHAWASU_PC_LIBS})
target_link_libraries(khawasu_pc_client PUBLIC ${KHAWASU_PC_LIBS})
target_link_libraries(khawasu_pc PUBLIC ${KHAWASU_PC_LIBS})
target_link_libraries(khawasu_capi PUBLIC -static ${KHAWASU_PC_LIBS})
target_link_libraries(khawasu_capi_test PUBLIC ${KHAWASU_PC_LIBS})
target_compile_definitions(khawasu_pc PUBLIC KHAWASU_ENABLE_REFLECTION)
target_compile_definitions(hwctrl PUBLIC KHAWASU_ENABLE_REFLECTION GIT_HASH="${GIT_HASH}")
target_compile_definitions(khawasu_capi PUBLIC KHAWASU_ENABLE_REFLECTION)
target_compile_definitions(khawasu_capi_test PUBLIC KHAWASU_ENABLE_REFLECTION)
target_compile_definitions(khawasu_pc_client PUBLIC KHAWASU_ENABLE_REFLECTION)
# Add Mess
#set(MESS_DIRECTORY "${KHAWASU_ROOT}\\thirdparties\\Mess")
#set(MESS_SOURCE "${KHAWASU_ROOT}\\khawasu\\khawasu_esp32_devices\\messages\\messages.ini")
#set(MESS_TARGET "${CMAKE_SOURCE_DIR}\\messages.cpp")
#
#include(${MESS_DIRECTORY}/CMakeLists.txt)
#
#add_dependencies(hwctrl mess)