alinea CMake amb la resta de projectes
This commit is contained in:
+6
-14
@@ -8,21 +8,11 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|||||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE)
|
set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Configuración de compilador para MinGW en Windows
|
|
||||||
if(WIN32 AND NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|
||||||
set(CMAKE_CXX_COMPILER "g++")
|
|
||||||
set(CMAKE_C_COMPILER "gcc")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Establecer estándar de C++
|
# Establecer estándar de C++
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
# Configuración global de flags de compilación
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os -ffunction-sections -fdata-sections")
|
|
||||||
|
|
||||||
# Define el directorio de los archivos fuente
|
# Define el directorio de los archivos fuente
|
||||||
set(DIR_SOURCES "${CMAKE_SOURCE_DIR}/source")
|
set(DIR_SOURCES "${CMAKE_SOURCE_DIR}/source")
|
||||||
|
|
||||||
@@ -123,6 +113,10 @@ endif()
|
|||||||
# Includes relatius a source/ (p.e. `#include "core/rendering/texture.h"`)
|
# Includes relatius a source/ (p.e. `#include "core/rendering/texture.h"`)
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE ${DIR_SOURCES})
|
target_include_directories(${PROJECT_NAME} PRIVATE ${DIR_SOURCES})
|
||||||
|
|
||||||
|
# Flags de compilació per-target
|
||||||
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wall)
|
||||||
|
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:RELEASE>:-Os -ffunction-sections -fdata-sections>)
|
||||||
|
|
||||||
# Añadir definiciones de compilación dependiendo del tipo de build
|
# Añadir definiciones de compilación dependiendo del tipo de build
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||||
$<$<CONFIG:DEBUG>:DEBUG>
|
$<$<CONFIG:DEBUG>:DEBUG>
|
||||||
@@ -184,8 +178,6 @@ file(GLOB_RECURSE ALL_SOURCE_FILES
|
|||||||
|
|
||||||
set(CLANG_TIDY_SOURCES ${ALL_SOURCE_FILES})
|
set(CLANG_TIDY_SOURCES ${ALL_SOURCE_FILES})
|
||||||
|
|
||||||
set(FORMAT_SOURCES ${ALL_SOURCE_FILES})
|
|
||||||
|
|
||||||
# Para cppcheck, pasar solo .cpp (los headers se procesan transitivamente).
|
# Para cppcheck, pasar solo .cpp (los headers se procesan transitivamente).
|
||||||
set(CPPCHECK_SOURCES ${ALL_SOURCE_FILES})
|
set(CPPCHECK_SOURCES ${ALL_SOURCE_FILES})
|
||||||
list(FILTER CPPCHECK_SOURCES INCLUDE REGEX ".*\\.cpp$")
|
list(FILTER CPPCHECK_SOURCES INCLUDE REGEX ".*\\.cpp$")
|
||||||
@@ -218,7 +210,7 @@ if(CLANG_FORMAT_EXE)
|
|||||||
add_custom_target(format
|
add_custom_target(format
|
||||||
COMMAND ${CLANG_FORMAT_EXE}
|
COMMAND ${CLANG_FORMAT_EXE}
|
||||||
-i
|
-i
|
||||||
${FORMAT_SOURCES}
|
${ALL_SOURCE_FILES}
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
COMMENT "Running clang-format..."
|
COMMENT "Running clang-format..."
|
||||||
)
|
)
|
||||||
@@ -227,7 +219,7 @@ if(CLANG_FORMAT_EXE)
|
|||||||
COMMAND ${CLANG_FORMAT_EXE}
|
COMMAND ${CLANG_FORMAT_EXE}
|
||||||
--dry-run
|
--dry-run
|
||||||
--Werror
|
--Werror
|
||||||
${FORMAT_SOURCES}
|
${ALL_SOURCE_FILES}
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
COMMENT "Checking clang-format..."
|
COMMENT "Checking clang-format..."
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user