aboutsummaryrefslogtreecommitdiff
path: root/cmake/Platforms
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2024-09-16 14:07:41 +0000
committerFelix Morgner <felix.morgner@ost.ch>2024-09-17 08:58:55 +0200
commit8f9b9cd8aac30572b7e275bbeb1b32d2cbb8950a (patch)
tree5e215dd93c34b3d58c287b036ad2d190e0a9a772 /cmake/Platforms
parentc16a3739649fa15178df667d610553e93db83e4c (diff)
downloadteachos-8f9b9cd8aac30572b7e275bbeb1b32d2cbb8950a.tar.xz
teachos-8f9b9cd8aac30572b7e275bbeb1b32d2cbb8950a.zip
build: migrate away from conan
Diffstat (limited to 'cmake/Platforms')
-rw-r--r--cmake/Platforms/x86_64.cmake35
1 files changed, 35 insertions, 0 deletions
diff --git a/cmake/Platforms/x86_64.cmake b/cmake/Platforms/x86_64.cmake
new file mode 100644
index 0000000..291cbaa
--- /dev/null
+++ b/cmake/Platforms/x86_64.cmake
@@ -0,0 +1,35 @@
+execute_process(COMMAND "x86_64-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(SYSTEM_NAME "Generic")
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
+
+set(CMAKE_C_COMPILER "x86_64-elf-gcc")
+set(CMAKE_CXX_COMPILER "x86_64-elf-g++")
+
+set(CMAKE_CXX_FLAGS_INIT "-m64 -mno-red-zone -mcmodel=large -fno-exceptions -ffunction-sections -fdata-sections")
+set(CMAKE_CXX_FLAGS_DEBUG "-ggdb3")
+set(CMAKE_ASM_FLAGS_DEBUG "-ggdb3")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-ggdb3")
+set(CMAKE_ASM_FLAGS_RELWITHDEBINFO "-ggdb3")
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles -Wl,--gc-sections")
+set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> \
+ <FLAGS> \
+ <CMAKE_CXX_LINK_FLAGS> \
+ <LINK_FLAGS> \
+ ${CMAKE_SYSROOT}/crtbegin.o \
+ <OBJECTS> \
+ -o <TARGET> \
+ <LINK_LIBRARIES> \
+ -lgcc \
+ ${CMAKE_SYSROOT}/crtend.o"
+) \ No newline at end of file