aboutsummaryrefslogtreecommitdiff
path: root/source/cmake/Platforms
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2023-10-07 12:24:15 +0200
committerFelix Morgner <felix.morgner@ost.ch>2023-10-07 12:24:15 +0200
commit60f8108324dcc3859640799168fb33ea865cf815 (patch)
treeb8c137a386cd15d42c7c2d0cd4a94e9b378b3ed9 /source/cmake/Platforms
parent84f03c4870af20c9edf16343f968f3b920c04a02 (diff)
downloadteachos-60f8108324dcc3859640799168fb33ea865cf815.tar.xz
teachos-60f8108324dcc3859640799168fb33ea865cf815.zip
cmake: move modules to source
Diffstat (limited to 'source/cmake/Platforms')
-rw-r--r--source/cmake/Platforms/x86_64.cmake23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/cmake/Platforms/x86_64.cmake b/source/cmake/Platforms/x86_64.cmake
new file mode 100644
index 0000000..9e727cf
--- /dev/null
+++ b/source/cmake/Platforms/x86_64.cmake
@@ -0,0 +1,23 @@
+execute_process(COMMAND "x86_64-none-elf-g++" "-print-file-name=crtbegin.o"
+ OUTPUT_VARIABLE CRT_BEGIN
+ ERROR_QUIET
+)
+string(STRIP "${CRT_BEGIN}" CRT_BEGIN)
+mark_as_advanced(CRT_BEGIN)
+
+string(REGEX REPLACE "/crtbegin.o" "" CMAKE_SYSROOT "${CRT_BEGIN}")
+mark_as_advanced(CMAKE_SYSROOT)
+
+set(CMAKE_CXX_FLAGS_INIT "-m64 -mno-red-zone -mcmodel=large")
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles")
+set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> \
+ <FLAGS> \
+ <CMAKE_CXX_LINK_FLAGS> \
+ <LINK_FLAGS> \
+ ${CMAKE_SYSROOT}/crtbegin.o \
+ <OBJECTS> \
+ -o <TARGET> \
+ <LINK_LIBRARIES> \
+ ${CMAKE_SYSROOT}/crtend.o"
+)