aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.posix/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'nihil.posix/CMakeLists.txt')
-rw-r--r--nihil.posix/CMakeLists.txt61
1 files changed, 61 insertions, 0 deletions
diff --git a/nihil.posix/CMakeLists.txt b/nihil.posix/CMakeLists.txt
new file mode 100644
index 0000000..62f6aaf
--- /dev/null
+++ b/nihil.posix/CMakeLists.txt
@@ -0,0 +1,61 @@
+# This source code is released into the public domain.
+
+add_library(nihil.posix STATIC)
+target_link_libraries(nihil.posix PRIVATE
+ nihil.core nihil.error nihil.flagset nihil.guard nihil.monad)
+
+target_sources(nihil.posix
+ PUBLIC FILE_SET modules TYPE CXX_MODULES FILES
+ posix.ccm
+
+ argv.ccm
+ ensure_dir.ccm
+ exec.ccm
+ execv.ccm
+ executor.ccm
+ fd.ccm
+ find_in_path.ccm
+ getenv.ccm
+ open.ccm
+ process.ccm
+ read_file.ccm
+ rename.ccm
+ spawn.ccm
+ tempfile.ccm
+ write_file.ccm
+
+ PRIVATE
+ argv.cc
+ ensure_dir.cc
+ exec.cc
+ execv.cc
+ getenv.cc
+ fd.cc
+ find_in_path.cc
+ open.cc
+ process.cc
+ rename.cc
+ tempfile.cc
+)
+
+if(NIHIL_TESTS)
+ enable_testing()
+
+ add_executable(nihil.posix.test
+ test.fd.cc
+ test.getenv.cc
+ test.spawn.cc
+ test.tempfile.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()