-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
53 lines (39 loc) · 1.65 KB
/
CMakeLists.txt
File metadata and controls
53 lines (39 loc) · 1.65 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
cmake_minimum_required(VERSION 3.24)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/ARMCC.cmake)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT DEFINED ENV{ARMCC_PATH})
message(FATAL_ERROR "please set ARMCC_PATH")
endif()
find_program(ARM_ASM NAMES armasm.exe PATHS $ENV{ARMCC_PATH}/bin REQUIRED NO_DEFAULT_PATH)
find_program(ARM_AR NAMES armar.exe PATHS $ENV{ARMCC_PATH}/bin REQUIRED NO_DEFAULT_PATH)
find_program(ARM_CC NAMES armcc.exe PATHS $ENV{ARMCC_PATH}/bin REQUIRED NO_DEFAULT_PATH)
find_program(ARM_LINK NAMES armlink.exe PATHS $ENV{ARMCC_PATH}/bin REQUIRED NO_DEFAULT_PATH)
# find_program(ARM_FROMELF NAMES fromelf.exe PATHS $ENV{ARMCC_PATH}/bin REQUIRED NO_DEFAULT_PATH) # not important
macro (set_compilers)
set(CMAKE_CXX_COMPILER_ID ARMCC)
set(CMAKE_AR ${ARM_AR})
set(CMAKE_C_COMPILER ${ARM_CC})
set(CMAKE_CXX_COMPILER ${ARM_CC})
set(CMAKE_ASM_COMPILER ${ARM_ASM})
set(CMAKE_LINKER ${ARM_LINK})
endmacro()
if (WIN32)
set_compilers()
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_ASM_COMPILER_WORKS TRUE)
endif()
project(LibMessageStudio C)
if (NOT WIN32)
set_compilers()
endif()
__compiler_armcc(C)
file(GLOB_RECURSE csourcefiles "Source/*.c")
add_library(LibMessageStudio ${csourcefiles})
target_compile_options(LibMessageStudio PUBLIC $<$<COMPILE_LANGUAGE:C>:
--apcs=//interwork --cpu=MPCore --fpmode=fast --c99 --arm
--signed_chars --multibyte-chars --locale=japanese
-Otime --data-reorder --split_sections
>)
target_compile_definitions(LibMessageStudio PUBLIC NON_MATCHING=)
target_include_directories(LibMessageStudio PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Include)