34 lines
1.1 KiB
CMake
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)
|