windows编译支持(需要配合cygwin)

This commit is contained in:
ATShining
2024-10-31 10:37:48 +08:00
parent 88d73742ca
commit 69d8b12738
12 changed files with 52 additions and 42 deletions

View File

@@ -179,22 +179,21 @@ target_link_libraries(
--no-whole-archive
${GCC_LIB_PATH}/libgcc.a
)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output/cpio)
add_custom_target(
bootstrap_dump ALL
COMMAND
${CMAKE_OBJCOPY} -O binary -S bootstrap.elf bootstrap.bin
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output
${CMAKE_COMMAND} -E copy bootstrap.bin ${CMAKE_SOURCE_DIR}/build/output/bootstrap
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
COMMAND
cp bootstrap.bin ${CMAKE_SOURCE_DIR}/build/output/bootstrap
COMMAND
cp bootstrap.elf ${CMAKE_SOURCE_DIR}/build/output/bootstrap.elf
${CMAKE_COMMAND} -E copy bootstrap.elf ${CMAKE_SOURCE_DIR}/build/output/bootstrap.elf
COMMAND
${CMAKE_SIZE} bootstrap.elf
)
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/build/include)
add_dependencies(bootstrap_dump bootstrap.elf)
add_dependencies(bootstrap.elf boot_bsp)
add_dependencies(bootstrap.elf boot_link_file_dump)

View File

@@ -6,8 +6,6 @@ math(EXPR KNL_OFFSET "${CONFIG_BOOTSTRAP_TEXT_SIZE} + ${CONFIG_DTBO_TEXT_SIZE}")
add_custom_target(
mkrtos_img_dump ALL
COMMAND
cd ${CMAKE_SOURCE_DIR}/build/output/cpio
COMMAND
dtc -I dts -O dtb -o ${CMAKE_SOURCE_DIR}/build/output/dtbo ${CMAKE_SOURCE_DIR}/mkrtos_configs/${BOARD}.dts
COMMAND
ls | cpio -H newc -o > ${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio
@@ -18,7 +16,7 @@ add_custom_target(
${CMAKE_SOURCE_DIR}/build/output/mkrtos -binary -offset ${KNL_OFFSET}
${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio -binary -offset ${BOOTFS_OFFSET}
COMMAND
cp ${CMAKE_SOURCE_DIR}/build/output/kernel.img ${CMAKE_SOURCE_DIR}/build/output/kernel.bin
${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/build/output/kernel.img ${CMAKE_SOURCE_DIR}/build/output/kernel.bin
COMMAND
${CMAKE_OBJCOPY} -I binary -O elf32-littlearm -B arm ${CMAKE_SOURCE_DIR}/build/output/kernel.img
${CMAKE_SOURCE_DIR}/build/output/kernel.img.out --rename-section .data=.text

View File

@@ -53,19 +53,16 @@ add_custom_target(
-E -P -<${CMAKE_CURRENT_LIST_DIR}/arch/${CONFIG_ARCH}/link.lds.S>
${CMAKE_CURRENT_LIST_DIR}/arch/${CONFIG_ARCH}/link.lds
)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output/cpio)
add_custom_target(
mkrtos_dump ALL
COMMAND
${CMAKE_OBJCOPY} -O binary -S mkrtos.elf mkrtos.bin
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output
${CMAKE_COMMAND} -E copy mkrtos.bin ${CMAKE_SOURCE_DIR}/build/output/mkrtos
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
COMMAND
cp mkrtos.bin ${CMAKE_SOURCE_DIR}/build/output/mkrtos
COMMAND
cp mkrtos.elf ${CMAKE_SOURCE_DIR}/build/output/mkrtos.elf
${CMAKE_COMMAND} -E copy mkrtos.elf ${CMAKE_SOURCE_DIR}/build/output/mkrtos.elf
COMMAND
${CMAKE_OBJDUMP} -s -S mkrtos.elf > ${CMAKE_SOURCE_DIR}/build/output/mkrtos.S
COMMAND
@@ -75,7 +72,7 @@ if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(
mkrtos_dump_elf ALL
COMMAND
cp mkrtos.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/mkrtos.elf
${CMAKE_COMMAND} -E copy mkrtos.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/mkrtos.elf
)
add_dependencies(mkrtos_dump_elf mkrtos_dump)
endif()

View File

@@ -3,8 +3,11 @@
# export TOOLCHAIN=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7e-m/fpu
export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard
# export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
# export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard
export TOOLCHAIN=/d/GNUArmEmbeddedToolchain/102021.10/bin/
export TOOLCHAIN_LIB=/d/GNUArmEmbeddedToolchain/102021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
# export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
# export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp

View File

@@ -1,7 +1,10 @@
#!/bin/bash
export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
# export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
# export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
export TOOLCHAIN=/d/GNUArmEmbeddedToolchain/102021.10/bin/
export TOOLCHAIN_LIB=/d/GNUArmEmbeddedToolchain/102021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
# export TOOLCHAIN=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7-m/

View File

@@ -56,17 +56,15 @@ add_custom_target(
COMMAND
${CMAKE_SIZE} cpiofs.elf
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
${CMAKE_COMMAND} -E copy cpiofs.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/cpiofs
COMMAND
cp cpiofs.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/cpiofs
COMMAND
cp cpiofs.elf ${CMAKE_SOURCE_DIR}/build/output/cpiofs.elf
${CMAKE_COMMAND} -E copy cpiofs.elf ${CMAKE_SOURCE_DIR}/build/output/cpiofs.elf
)
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(
cpiofs_dump_elf ALL
COMMAND
cp cpiofs.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/cpiofs
${CMAKE_COMMAND} -E copy cpiofs.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/cpiofs
)
add_dependencies(cpiofs_dump_elf cpiofs_dump)
endif()

View File

@@ -56,13 +56,11 @@ add_custom_target(
COMMAND
${CMAKE_SIZE} init.elf
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output
${CMAKE_COMMAND} -E copy init.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/init
COMMAND
cp init.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/init
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/src/init.cfg ${CMAKE_SOURCE_DIR}/build/output/cpio/
COMMAND
cp ${CMAKE_CURRENT_LIST_DIR}/src/init.cfg ${CMAKE_SOURCE_DIR}/build/output/cpio/
COMMAND
cp init.elf ${CMAKE_SOURCE_DIR}/build/output/init.elf
${CMAKE_COMMAND} -E copy init.elf ${CMAKE_SOURCE_DIR}/build/output/init.elf
)
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(

View File

@@ -45,17 +45,15 @@ add_custom_target(
COMMAND
${CMAKE_SIZE} sh.elf
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
${CMAKE_COMMAND} -E copy sh.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
COMMAND
cp sh.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
COMMAND
cp sh.elf ${CMAKE_SOURCE_DIR}/build/output/sh.elf
${CMAKE_COMMAND} -E copy sh.elf ${CMAKE_SOURCE_DIR}/build/output/sh.elf
)
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(
sh_dump_elf ALL
COMMAND
cp sh.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
${CMAKE_COMMAND} -E copy sh.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
)
add_dependencies(sh_dump_elf shell_dump)
endif()

View File

@@ -74,17 +74,15 @@ add_custom_target(
${CMAKE_OBJCOPY} -O binary -S tcc.elf tcc.bin
COMMAND
${CMAKE_SIZE} tcc.elf
COMMAND
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
# COMMAND
# cp tcc.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/tcc
# ${CMAKE_COMMAND} -E copy tcc.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/tcc
)
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(
tcc_dump_elf ALL
COMMAND
cp tcc.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/tcc.elf
${CMAKE_COMMAND} -E copy tcc.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/tcc.elf
)
add_dependencies(tcc_dump_elf tcc_dump)
endif()

View File

@@ -3,6 +3,23 @@ set(CROSS_COMPILE ${CMAKE_TOOLCHAIN_PATH}$ENV{CROSS_COMPILE_NAME} CACHE PATH ""
set(GCC_LIB_PATH $ENV{TOOLCHAIN_LIB})
set(CMAKE_INSTALL_PATH "${CMAKE_BINARY_DIR}deploy" CACHE PATH "" FORCE)
if(CMAKE_HOST_WIN32)
set(CMAKE_C_COMPILER "${CROSS_COMPILE}gcc.exe" CACHE PATH "" FORCE)
set(CMAKE_ASM_COMPILER "${CROSS_COMPILE}gcc.exe" CACHE PATH "" FORCE)
set(CMAKE_CC_COMPILER "${CROSS_COMPILE}g++.exe" CACHE PATH "" FORCE)
set(CMAKE_CXX_COMPILER "${CROSS_COMPILE}g++.exe" CACHE PATH "" FORCE)
set(CMAKE_CPP_COMPILER "${CROSS_COMPILE}cpp.exe" CACHE PATH "" FORCE)
set(CMAKE_LINKER "${CROSS_COMPILE}ld.exe" CACHE PATH "" FORCE)
set(CMAKE_STRIP "${CROSS_COMPILE}strip.exe" CACHE PATH "" FORCE)
set(CMAKE_OBJCOPY "${CROSS_COMPILE}objcopy.exe" CACHE PATH "" FORCE)
set(CMAKE_OBJDUMP "${CROSS_COMPILE}objdump.exe" CACHE PATH "" FORCE)
set(CMAKE_READELF "${CROSS_COMPILE}readelf.exe" CACHE PATH "" FORCE)
set(CMAKE_SIZE "${CROSS_COMPILE}size.exe" CACHE PATH "" FORCE)
set(CMAKE_NM "${CROSS_COMPILE}nm.exe" CACHE PATH "" FORCE)
set(CMAKE_AR "${CROSS_COMPILE}ar.exe" CACHE PATH "" FORCE)
set(CMAKE_SIZE "${CROSS_COMPILE}size.exe" CACHE PATH "" FORCE)
else()
set(CMAKE_C_COMPILER "${CROSS_COMPILE}gcc" CACHE PATH "" FORCE)
set(CMAKE_ASM_COMPILER "${CROSS_COMPILE}gcc" CACHE PATH "" FORCE)
set(CMAKE_CC_COMPILER "${CROSS_COMPILE}g++" CACHE PATH "" FORCE)
@@ -17,8 +34,9 @@ set(CMAKE_SIZE "${CROSS_COMPILE}size" CACHE PATH "" FORCE)
set(CMAKE_NM "${CROSS_COMPILE}nm" CACHE PATH "" FORCE)
set(CMAKE_AR "${CROSS_COMPILE}ar" CACHE PATH "" FORCE)
set(CMAKE_SIZE "${CROSS_COMPILE}size" CACHE PATH "" FORCE)
set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
endif()
set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(BOARD $ENV{BOARD})
include(mkrtos_cmake/top.cmake)