Эх сурвалжийг харах

feat: cross compiling in macos

greatbridf 3 жил өмнө
parent
commit
1a5b8ccba3
2 өөрчлөгдсөн 17 нэмэгдсэн , 4 устгасан
  1. 4 4
      CMakeLists.txt
  2. 13 0
      cross-compile.cmake

+ 4 - 4
CMakeLists.txt

@@ -19,7 +19,7 @@ add_library(bootloader STATIC ${BOOTLOADER_SOURCES})
 
 add_custom_command(OUTPUT extracted_bootloader
     DEPENDS bootloader
-    COMMAND ar xf ${PROJECT_BINARY_DIR}/libbootloader.a --output=${EXTRACT_DIR}
+    COMMAND ${CMAKE_AR} xf ${PROJECT_BINARY_DIR}/libbootloader.a --output=${EXTRACT_DIR}
 )
 
 project(kernel_main)
@@ -71,19 +71,19 @@ add_library(kernel_main STATIC ${KERNEL_MAIN_SOURCES})
 
 add_custom_command(OUTPUT extracted_kernel_main
     DEPENDS kernel_main
-    COMMAND ar xf ${PROJECT_BINARY_DIR}/libkernel_main.a --output=${EXTRACT_DIR}
+    COMMAND ${CMAKE_AR} xf ${PROJECT_BINARY_DIR}/libkernel_main.a --output=${EXTRACT_DIR}
 )
 
 add_custom_target(kernel.out
     DEPENDS extracted_bootloader
     DEPENDS extracted_kernel_main
-    COMMAND ld -T ${CMAKE_SOURCE_DIR}/ldscript.ld ${EXTRACT_DIR}/*.o
+    COMMAND ${CMAKE_LD} -T ${CMAKE_SOURCE_DIR}/ldscript.ld ${EXTRACT_DIR}/*.o
     -melf_i386 -o ${CMAKE_BINARY_DIR}/kernel.out
 )
 
 add_custom_target(boot.img
     DEPENDS kernel.out
-    COMMAND objcopy --strip-debug -O binary
+    COMMAND ${CMAKE_OBJCOPY} --strip-debug -O binary
     ${CMAKE_BINARY_DIR}/kernel.out boot.img)
 
 add_custom_command(OUTPUT run

+ 13 - 0
cross-compile.cmake

@@ -0,0 +1,13 @@
+set(CMAKE_SYSTEM_NAME Linux)
+
+#set(CMAKE_ASM_COMPILER /usr/local/bin/x86_64-elf-as)
+set(CMAKE_C_COMPILER /usr/local/bin/x86_64-elf-gcc)
+set(CMAKE_CXX_COMPILER /usr/local/bin/x86_64-elf-g++)
+set(CMAKE_AR /usr/local/bin/x86_64-elf-ar)
+set(CMAKE_LD /usr/local/bin/x86_64-elf-ld)
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+# for libraries and headers in the target directories
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)