# wnix, 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 # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . set(NW_LOG_CUSTOM ON) add_subdirectory(nanowasm) set(WIP_LOG_CUSTOM ON) add_subdirectory(wip) add_subdirectory(dynstr) # Avoid C11 since it is not supported by the i386-mingw32 toolchain. set(cflags ${cflags} -Wall) set(components aio bin caio drv endian fs gfx init io kprintf loop net page ) set(interfaces state ) if(PS1_BUILD) add_subdirectory(libc) add_subdirectory(ps1) endif() target_compile_options(${PROJECT_NAME} PUBLIC ${cflags}) target_compile_options(nanowasm PUBLIC ${cflags}) # Dependencies for main.c target_link_libraries(${PROJECT_NAME} PRIVATE gfx init loop drv_ps1_bios drv_ps1_sio ) foreach(c ${components}) 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) target_link_libraries(${PROJECT_NAME} PRIVATE ${c}) if(PS1_BUILD) target_link_libraries(${c} PUBLIC c) endif() endforeach() foreach(i ${interfaces}) add_subdirectory(${i}) target_compile_options(${i} INTERFACE ${cflags}) target_link_libraries(${i} INTERFACE ${c}) endforeach() target_link_options(${PROJECT_NAME} PRIVATE -Wl,--gc-sections)