diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-03-23 08:10:49 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-03-23 08:10:49 +0100 |
| commit | 754012dd458985a6a4953c99204c6651318892b2 (patch) | |
| tree | 3c654198ae6704137d6da8f9396f3e8970630ea0 /libs/kstd/CMakeLists.txt | |
| parent | c9ce8625dd80f701e280f90cb30c30f8663473e9 (diff) | |
| download | teachos-754012dd458985a6a4953c99204c6651318892b2.tar.xz teachos-754012dd458985a6a4953c99204c6651318892b2.zip | |
testing: enable build-host testing
Diffstat (limited to 'libs/kstd/CMakeLists.txt')
| -rw-r--r-- | libs/kstd/CMakeLists.txt | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/libs/kstd/CMakeLists.txt b/libs/kstd/CMakeLists.txt index b0c9c63..2f360cd 100644 --- a/libs/kstd/CMakeLists.txt +++ b/libs/kstd/CMakeLists.txt @@ -1,16 +1,22 @@ add_library("kstd" STATIC) add_library("libs::kstd" ALIAS "kstd") -set(KSTD_LIBC_SYMBOLS - "abort" - "strlen" - "memcmp" - "memcpy" -) +if(CMAKE_CROSSCOMPILING) + set(KSTD_LIBC_SYMBOLS + "abort" + "strlen" + "memcmp" + "memcpy" + ) + + set(KSTD_LIBC_SOURCES + "src/libc/stdlib.cpp" + "src/libc/string.cpp" + ) +endif() target_sources("kstd" PRIVATE - "src/libc/stdlib.cpp" - "src/libc/string.cpp" + ${KSTD_LIBC_SOURCES} "src/os/error.cpp" @@ -30,6 +36,28 @@ target_include_directories("kstd" PUBLIC "include" ) -list(TRANSFORM KSTD_LIBC_SYMBOLS PREPEND "-Wl,--undefined=") +if(CMAKE_CROSSCOMPILING) + list(TRANSFORM KSTD_LIBC_SYMBOLS PREPEND "-Wl,--undefined=") + + target_link_options("kstd" INTERFACE ${KSTD_LIBC_SYMBOLS}) +endif() + +if(NOT CMAKE_CROSSCOMPILING) + add_executable("kstd_tests" + "tests/vector.cpp" + "tests/os_mock.cpp" + ) + + target_link_libraries("kstd_tests" PRIVATE + "Catch2::Catch2WithMain" + "libs::kstd" + ) + + set_target_properties("kstd_tests" PROPERTIES + C_CLANG_TIDY "" + CXX_CLANG_TIDY "" + EXCLUDE_FROM_ALL NO + ) -target_link_options("kstd" INTERFACE ${KSTD_LIBC_SYMBOLS})
\ No newline at end of file + catch_discover_tests("kstd_tests") +endif()
\ No newline at end of file |
