🎉 begin project

This commit is contained in:
Maurice Grönwoldt 2025-05-29 13:21:19 +02:00
commit 8da6ddc689
29 changed files with 1261 additions and 0 deletions

34
CMakeLists.txt Normal file
View file

@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.31)
project(VUI LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/${CMAKE_SYSTEM_NAME}/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/${CMAKE_SYSTEM_NAME}/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/)
set(IS_DEBUG_BUILD CMAKE_BUILD_TYPE STREQUAL "Debug")
# AVX :)
if (MSVC)
add_definitions(/MP /arch:AVX2 /W4)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_definitions(-mavx2 -Wall -Wextra)
endif ()
add_subdirectory(CMake)
add_subdirectory(Source)
get_property(source_files GLOBAL PROPERTY SRCS)
get_property(module_source_files GLOBAL PROPERTY MODULE_SRCS)
add_library(VUI STATIC ${source_files})
target_sources(VUI
PUBLIC
FILE_SET CXX_MODULES FILES
${module_source_files}
)
set_property(TARGET VUI PROPERTY COMPILE_WARNING_AS_ERROR ON)
target_compile_features(VUI PUBLIC cxx_std_23)
add_executable(VUI_EX main.cppm)
target_link_libraries(VUI_EX PRIVATE VUI)
target_compile_features(VUI_EX PUBLIC cxx_std_23)