-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
89 lines (64 loc) · 3.4 KB
/
CMakeLists.txt
File metadata and controls
89 lines (64 loc) · 3.4 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
cmake_minimum_required(VERSION 3.3)
project (uScript)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Set Microsoft Visual Studio specific macros
if(MSVC)
set(BUILD_LOCAL "ON")
set(FOLDER_SUFFIX "_vs")
set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
else()
set(FOLDER_SUFFIX "")
endif()
set(INSTALL_WIN_APP_DIR "bin/windows${FOLDER_SUFFIX}_${CMAKE_BUILD_TYPE}")
set(INSTALL_WIN_PLUGIN_DIR "bin/windows${FOLDER_SUFFIX}_${CMAKE_BUILD_TYPE}/plugins")
set(INSTALL_WIN_IPLUGIN_DIR "bin/windows${FOLDER_SUFFIX}_${CMAKE_BUILD_TYPE}/iplugins")
set(INSTALL_LINUX_APP_DIR "bin/linux_${CMAKE_BUILD_TYPE}")
set(INSTALL_LINUX_PLUGIN_DIR "bin/linux_${CMAKE_BUILD_TYPE}/plugins")
set(INSTALL_LINUX_IPLUGIN_DIR "bin/linux_${CMAKE_BUILD_TYPE}/iplugins")
set(INSTALL_LINUX_SHAREDLIBS_DIR "bin/extlibs")
if(MSVC OR MSYS OR MINGW)
set(INSTALL_APP_DIR ${INSTALL_WIN_APP_DIR})
set(INSTALL_PLUGIN_DIR ${INSTALL_WIN_PLUGIN_DIR})
set(INSTALL_IPLUGIN_DIR ${INSTALL_WIN_IPLUGIN_DIR})
SET(LIB_INSTALL_TYPE RUNTIME)
else()
set(INSTALL_APP_DIR ${INSTALL_LINUX_APP_DIR})
set(INSTALL_PLUGIN_DIR ${INSTALL_LINUX_PLUGIN_DIR})
set(INSTALL_IPLUGIN_DIR ${INSTALL_LINUX_IPLUGIN_DIR})
SET(LIB_INSTALL_TYPE LIBRARY)
endif()
if( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
message(STATUS "Setting default CMAKE_INSTALL_PREFIX path to ../")
set(CMAKE_INSTALL_PREFIX "../" CACHE STRING "The path to use for make install" FORCE)
endif()
if(MINGW)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static ")
if( (CMAKE_BUILD_TYPE STREQUAL "Release") OR (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel") )
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s -Os -fsanitize=address")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s -Os -fsanitize=address")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s -Os")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s -Os")
endif()
endif()
if(UNIX AND NOT APPLE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/extlibs")
endif()
add_subdirectory(sources)
# --- application(s) ---
install( TARGETS uscript DESTINATION ${INSTALL_APP_DIR} )
# --- plugins -------
install( TARGETS shell_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS uart_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS uartmon_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS buspirate_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS hydrabus_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS ft4232_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS ft2232_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS ft232h_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS ft245_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
install( TARGETS cp2112_plugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_PLUGIN_DIR} )
# --- iplugins ------
install( TARGETS test_iplugin ${LIB_INSTALL_TYPE} DESTINATION ${INSTALL_IPLUGIN_DIR} )