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.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()