VUI/CMakeLists.txt
2025-05-29 13:21:19 +02:00

34 lines
1.1 KiB
CMake

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)