diff options
| author | Xavier Del Campo Romero <xavi92@disroot.org> | 2025-07-07 13:22:53 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi92@disroot.org> | 2025-11-11 00:08:15 +0100 |
| commit | 7861a52adf92a083bb2aed4c35f98d8035dce032 (patch) | |
| tree | 28cd3c40e4c878f730f5df3c1d93bdf91af490c3 /CMakeLists.txt | |
| parent | 7fc48e9216ff809da5f8055a50b0be17628ef1df (diff) | |
Setup project skeleton
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9820c84..bb3c826 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# wanix, a Unix-like operating system for WebAssembly +# 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 @@ -21,16 +21,20 @@ set(TOOLS_PREFIX ${CMAKE_BINARY_DIR}/tools) include(ExternalProject) ExternalProject_Add(tools SOURCE_DIR ${CMAKE_SOURCE_DIR}/tools + BUILD_ALWAYS ON CMAKE_ARGS + -D CMAKE_EXPORT_COMPILE_COMMANDS=ON -D CMAKE_INSTALL_PREFIX=${TOOLS_PREFIX}) -project(wanix C) +project(wnix C ASM) +option(WNIX_BUILD_PROGRAMS "Build userspace programs" ON) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) -add_compile_options(-mno-gpopt) +add_compile_options(-mno-gpopt -ffunction-sections -fdata-sections) if(CMAKE_TOOLCHAIN_FILE MATCHES "ps1") set(PS1_BUILD 1) + option(WNIX_VIRT_CD "Virtualise CD driver through SIO") elseif(CMAKE_TOOLCHAIN_FILE MATCHES "win9x") set(WIN9X_BUILD 1) set(SDL1_2_BUILD 1) @@ -40,7 +44,7 @@ else() set(SDL1_2_BUILD 1) endif() -add_executable(${PROJECT_NAME} ${exec_flags} "src/main.c") +add_executable(${PROJECT_NAME} ${exec_flags} src/main.c) if(SDL1_2_BUILD) find_package(SDL 1.2 REQUIRED) @@ -58,16 +62,19 @@ if(NOT PS1_BUILD) find_package(ENET 1.3 REQUIRED) endif() -set(cdroot ${CMAKE_BINARY_DIR}/cdimg) -file(MAKE_DIRECTORY ${cdroot}) +set(cdroot ${CMAKE_BINARY_DIR}) if(PS1_BUILD) - include("cmake/ps1.cmake") + include(cmake/ps1.cmake) elseif(WIN9X_BUILD) - include("cmake/win9x.cmake") + include(cmake/win9x.cmake) elseif(HOST_BUILD) - include("cmake/host.cmake") + include(cmake/host.cmake) endif() -add_subdirectory("res") -add_subdirectory("src") +add_subdirectory(res) +add_subdirectory(src) + +if(WNIX_BUILD_PROGRAMS) + add_subdirectory(programs) +endif() |
