summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0f28e58..2eff797 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# wanix, a Unix-like operating system for WebAssembly
+# wanix, a Unix-like operating system for WebAssembly applications.
# Copyright (C) 2025 Xavier Del Campo Romero
#
# This program is free software: you can redistribute it and/or modify
@@ -15,16 +15,25 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
add_subdirectory(nanowasm)
+add_subdirectory(dynstr)
target_link_libraries(${PROJECT_NAME} PRIVATE nanowasm)
# Avoid C11 since it is not supported by the i386-mingw32 toolchain.
-set(cflags ${cflags} -Wall -ffunction-sections -fdata-sections -pedantic)
+set(cflags ${cflags} -Wall -pedantic)
set(components
aio
+ drv
+ fs
+ gfx
+ init
+ io
+ kprintf
+ loop
)
set(interfaces
+ state
)
if(PS1_BUILD)
@@ -35,10 +44,10 @@ endif()
target_compile_options(${PROJECT_NAME} PUBLIC ${cflags})
target_compile_options(nanowasm PUBLIC ${cflags})
# Dependencies for main.c
-# target_link_libraries(${PROJECT_NAME} PRIVATE)
+target_link_libraries(${PROJECT_NAME} PRIVATE gfx init loop)
foreach(c ${components})
- add_subdirectory("${c}")
+ add_subdirectory(${c})
target_compile_options(${c} PUBLIC ${cflags})
target_compile_features(${c} PUBLIC c_std_99)
set_target_properties(${c} PROPERTIES C_STANDARD 99 C_EXTENSIONS OFF)
@@ -50,9 +59,9 @@ foreach(c ${components})
endforeach()
foreach(i ${interfaces})
- add_subdirectory("${i}")
+ add_subdirectory(${i})
target_compile_options(${i} INTERFACE ${cflags})
- target_link_libraries(${PROJECT_NAME} PRIVATE ${c})
+ target_link_libraries(${i} INTERFACE ${c})
endforeach()
target_link_options(${PROJECT_NAME} PRIVATE -Wl,--gc-sections)