summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2023-08-17 00:40:00 -0600
committerKiritoDv <kiritodev01@gmail.com>2023-08-17 00:40:00 -0600
commit1c5b3de55c72dca9a16c58a0f4dba3eee9b1f8e6 (patch)
treeb6d3cdb0411b0e0ef8e802516fd6f65462d79c1b /CMakeLists.txt
parent6fd8e5ee43dd0f87eb4e57b86e84770fcd95db25 (diff)
Starting CUBE-OS v0.1...
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt44
1 files changed, 44 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..87b28dc
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.12)
+project(CubeOS)
+
+set(CMAKE_CXX_STANDARD 20)
+
+# Source files
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
+file(GLOB CXX_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/**/*.cpp)
+file(GLOB C_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/**/*.c)
+set(SRC_DIR ${CXX_FILES} ${C_FILES})
+
+set(VPKTOOL_BUILD_GUI OFF)
+set(VPKTOOL_BUILD_TESTS OFF)
+set(VPKTOOL_BUILD_INSTALLER OFF)
+
+# Build
+add_executable(${PROJECT_NAME} ${SRC_DIR})
+
+# Fetch Dependencies
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/binarytools)
+
+# Link BinaryTools
+add_dependencies(${PROJECT_NAME} BinaryTools)
+target_link_libraries(${PROJECT_NAME} PRIVATE BinaryTools)
+
+# Link StormLib
+
+set(STORMLIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/StormLib)
+add_subdirectory(${STORMLIB_DIR})
+target_link_libraries(${PROJECT_NAME} PRIVATE storm)
+
+if((CMAKE_SYSTEM_NAME MATCHES "Windows") AND ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
+ include(../cmake/HandleCompilerRT.cmake)
+ find_compiler_rt_library(builtins CLANG_RT_BUILTINS_LIBRARY)
+ get_filename_component(LIBDIR "${CLANG_RT_BUILTINS_LIBRARY}" DIRECTORY)
+ if(IS_DIRECTORY "${LIBDIR}")
+ target_link_libraries(storm ${CLANG_RT_BUILTINS_LIBRARY})
+ endif()
+endif()
+if (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
+ target_compile_definitions(storm PRIVATE -D_POSIX_C_SOURCE=200809L)
+endif() \ No newline at end of file