82 lines
2.5 KiB
CMake
82 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
|
if (${CONFIG_ARCH} STREQUAL "cortex-m3" OR
|
|
${CONFIG_ARCH} STREQUAL "cortex-m4" OR
|
|
${CONFIG_ARCH} STREQUAL "cortex-m33"
|
|
)
|
|
# -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative
|
|
# -mlong-calls -mword-relocations
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
|
|
-fPIC -fPIE -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative \
|
|
\
|
|
" )
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
|
|
-fPIC -fPIE -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative \
|
|
\
|
|
" )
|
|
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} \
|
|
-fPIC -fPIE -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative \
|
|
\
|
|
" )
|
|
#-Ttext-segment=0x0 -z max-page-size=0x4 -z common-page-size=0x4
|
|
set(CORTEX_M_LINK_FLAGS "-pie ")
|
|
set(LIBC_NAME "muslc")
|
|
set(ARCH_NAME "armv7_8m")
|
|
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/arch/arm/
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/arch/generic
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/obj/src/internal
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/src/include
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/src/internal
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/obj/include
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/mlibc/include
|
|
)
|
|
|
|
elseif(${CONFIG_ARCH} STREQUAL "aarch64")
|
|
set(CORTEX_M_LINK_FLAGS " --gc-section -z max-page-size=0x1000 -z common-page-size=0x1000 ")
|
|
set(LIBC_NAME "c")
|
|
set(ARCH_NAME "aarch64")
|
|
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/include
|
|
)
|
|
endif()
|
|
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/libc_backend/inc
|
|
)
|
|
if (${ARCH_NAME} STREQUAL "armv7_8m")
|
|
set(START_LIB start)
|
|
set(START_INIT_LIB start_init)
|
|
|
|
# add_subdirectory(app)
|
|
elseif(${CONFIG_ARCH} STREQUAL "aarch64" )
|
|
set(
|
|
START_LIB
|
|
""
|
|
)
|
|
set(START_INIT_LIB "")
|
|
|
|
set(
|
|
START_SRC
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crt1.o
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crti.o
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crtn.o
|
|
)
|
|
set(
|
|
START_SRC_INIT
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crt1_init.o
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crti.o
|
|
${CMAKE_SOURCE_DIR}/build/libc/output/lib/crtn.o
|
|
)
|
|
|
|
# add_subdirectory(uvmm)
|
|
# add_subdirectory(test)
|
|
endif()
|
|
|
|
add_subdirectory(lib)
|
|
add_subdirectory(server)
|
|
add_subdirectory(user)
|