diff --git a/modules/compiler/gcc.cmake b/modules/compiler/gcc.cmake index 231909c..e07cba1 100644 --- a/modules/compiler/gcc.cmake +++ b/modules/compiler/gcc.cmake @@ -129,7 +129,8 @@ list(APPEND FGL_CONFIG "-ftree-vectorize") list(APPEND FGL_CONFIG "-fmax-errors=6") - + LIST(APPEND FGL_CONFIG "-fmodules-ts") + LIST(APPEND FGL_CONFIG "-std=c++23") #AppendWarningFlag("-fanalyzer") #AppendWarningFlag("-Wanalyzer-too-complex") @@ -162,7 +163,7 @@ list(APPEND FGL_FLAGS ${FGL_CONFIG}) list(APPEND FGL_FLAGS ${FGL_FINAL_FLAGS_${UPPER_BUILD_TYPE}}) - list(APPEND FGL_FLAGS ${FGL_WARNINGS}) + # list(APPEND FGL_FLAGS ${FGL_WARNINGS}) list(APPEND FGL_CHILD_FLAGS ${FGL_FINAL_FLAGS_${UPPER_BUILD_TYPE}}) diff --git a/modules/helpers.cmake b/modules/helpers.cmake index 4d2e3a4..545ebbf 100644 --- a/modules/helpers.cmake +++ b/modules/helpers.cmake @@ -1,4 +1,4 @@ - +cmake_minimum_required(VERSION 3.28) function(PreSetup) PlatformPreSetup() @@ -13,11 +13,23 @@ function(PostSetup) endfunction() function(AddFGLExecutable NAME SRC_SOURCES_LOCATION) + set(CMAKE_CXX_STANDARD 23) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + + file(GLOB_RECURSE M_SOURCES CONFIGURE_DEPENDS + ${SRC_SOURCES_LOCATION}/**.cppm) + file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS ${SRC_SOURCES_LOCATION}/**.cpp ${SRC_SOURCES_LOCATION}/**.hpp ) - add_executable(${NAME} ${SOURCES}) + + message("Compiling ${NAME} WITH ${M_SOURCES} as modules") + + add_executable(${NAME}) + target_sources(${NAME} PUBLIC ${SOURCES}) + target_sources(${NAME} PUBLIC FILE_SET modules TYPE CXX_MODULES FILES ${M_SOURCES}) + target_include_directories(${NAME} PRIVATE ${SRC_SOURCES_LOCATION}) set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") SetFGLFlags(${NAME})