From 8f9b9cd8aac30572b7e275bbeb1b32d2cbb8950a Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 16 Sep 2024 14:07:41 +0000 Subject: build: migrate away from conan --- cmake/Modules/FindSphinx.cmake | 10 ++++++++++ cmake/Modules/Findgrub-mkrescue.cmake | 10 ++++++++++ cmake/Platforms/x86_64.cmake | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 cmake/Modules/FindSphinx.cmake create mode 100644 cmake/Modules/Findgrub-mkrescue.cmake create mode 100644 cmake/Platforms/x86_64.cmake (limited to 'cmake') diff --git a/cmake/Modules/FindSphinx.cmake b/cmake/Modules/FindSphinx.cmake new file mode 100644 index 0000000..a0a1c31 --- /dev/null +++ b/cmake/Modules/FindSphinx.cmake @@ -0,0 +1,10 @@ +include("FindPackageHandleStandardArgs") + +find_program(SPHINX_BUILD_EXE "sphinx-build" + HINTS "${PROJECT_SOURCE_DIR}/../.venv/bin" +) + +find_package_handle_standard_args("Sphinx" + DEFAULT_MSG + SPHINX_BUILD_EXE +) diff --git a/cmake/Modules/Findgrub-mkrescue.cmake b/cmake/Modules/Findgrub-mkrescue.cmake new file mode 100644 index 0000000..036b4fa --- /dev/null +++ b/cmake/Modules/Findgrub-mkrescue.cmake @@ -0,0 +1,10 @@ +include("FindPackageHandleStandardArgs") + +find_program(GRUB_MKRESCUE_EXE "grub-mkrescue") +find_program(MTOOLS_MFORMAT_EXE "mformat") + +find_package_handle_standard_args("grub-mkrescue" + DEFAULT_MSG + GRUB_MKRESCUE_EXE + MTOOLS_MFORMAT_EXE +) 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_SYSROOT}/crtbegin.o \ + \ + -o \ + \ + -lgcc \ + ${CMAKE_SYSROOT}/crtend.o" +) \ No newline at end of file -- cgit v1.2.3