aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.posix/CMakeLists.txt
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-06-28 19:25:55 +0100
committerLexi Winter <lexi@le-fay.org>2025-06-28 19:25:55 +0100
commita2d7181700ac64b8e7a4472ec26dfa253b38f188 (patch)
tree23c5a9c8ec4089ac346e2e0f9391909c3089b66b /nihil.posix/CMakeLists.txt
parentf226d46ee02b57dd76a4793593aa8d66e1c58353 (diff)
downloadnihil-a2d7181700ac64b8e7a4472ec26dfa253b38f188.tar.gz
nihil-a2d7181700ac64b8e7a4472ec26dfa253b38f188.tar.bz2
split nihil into separate modules
Diffstat (limited to 'nihil.posix/CMakeLists.txt')
-rw-r--r--nihil.posix/CMakeLists.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/nihil.posix/CMakeLists.txt b/nihil.posix/CMakeLists.txt
new file mode 100644
index 0000000..db5e5aa
--- /dev/null
+++ b/nihil.posix/CMakeLists.txt
@@ -0,0 +1,51 @@
+# This source code is released into the public domain.
+
+add_library(nihil.posix STATIC)
+target_link_libraries(nihil.posix PRIVATE nihil.error nihil.guard nihil.monad)
+
+target_sources(nihil.posix
+ PUBLIC FILE_SET modules TYPE CXX_MODULES FILES
+ nihil.posix.ccm
+ argv.ccm
+ ensure_dir.ccm
+ exec.ccm
+ fd.ccm
+ open.ccm
+ process.ccm
+ read_file.ccm
+ rename.ccm
+ spawn.ccm
+ write_file.ccm
+
+ PRIVATE
+ argv.cc
+ ensure_dir.cc
+ exec.cc
+ getenv.cc
+ fd.cc
+ find_in_path.cc
+ open.cc
+ process.cc
+ rename.cc
+)
+
+if(NIHIL_TESTS)
+ enable_testing()
+
+ add_executable(nihil.posix.test
+ test_fd.cc
+ test_getenv.cc
+ test_spawn.cc
+ )
+
+ target_link_libraries(nihil.posix.test PRIVATE
+ nihil.posix
+ Catch2::Catch2WithMain
+ )
+
+ find_package(Catch2 REQUIRED)
+
+ include(CTest)
+ include(Catch)
+ catch_discover_tests(nihil.posix.test)
+endif()