afegeix generació de version.h amb git hash
This commit is contained in:
+26
-1
@@ -13,6 +13,30 @@ set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
# --- GENERACIÓN DE VERSIÓN AUTOMÁTICA ---
|
||||
# Si GIT_HASH se ha pasado desde fuera (p.ej. desde el Makefile via -DGIT_HASH=xxx),
|
||||
# lo usamos tal cual. Esto evita problemas con Docker/emscripten, donde git aborta por
|
||||
# "dubious ownership" en el volumen montado. En builds locales sin -DGIT_HASH, se
|
||||
# resuelve aquí ejecutando git directamente.
|
||||
if(NOT DEFINED GIT_HASH OR GIT_HASH STREQUAL "")
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --short=7 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
endif()
|
||||
if(NOT DEFINED GIT_HASH OR GIT_HASH STREQUAL "")
|
||||
set(GIT_HASH "unknown")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Configurar archivo de versión
|
||||
configure_file(${CMAKE_SOURCE_DIR}/source/version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY)
|
||||
|
||||
# Define el directorio de los archivos fuente
|
||||
set(DIR_SOURCES "${CMAKE_SOURCE_DIR}/source")
|
||||
|
||||
@@ -166,7 +190,8 @@ if(NOT APPLE AND NOT EMSCRIPTEN AND GLSLC_EXE)
|
||||
endif()
|
||||
|
||||
# Includes relatius a source/ (p.e. `#include "core/rendering/texture.h"`)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${DIR_SOURCES})
|
||||
# ${CMAKE_BINARY_DIR} per al version.h generat per configure_file.
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${DIR_SOURCES} ${CMAKE_BINARY_DIR})
|
||||
|
||||
# Flags de compilació per-target
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
namespace Version {
|
||||
constexpr const char* GIT_HASH = "@GIT_HASH@";
|
||||
constexpr const char* APP_NAME = "Coffee Crisis";
|
||||
} // namespace Version
|
||||
@@ -3,13 +3,12 @@
|
||||
#include <string>
|
||||
|
||||
#include "core/resources/resource_pack.h"
|
||||
#include "../../build/version.h" // Version::APP_NAME
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr const char* APP_NAME = "Coffee Crisis";
|
||||
|
||||
void showHelp() {
|
||||
std::cout << APP_NAME << " - Resource Packer\n";
|
||||
std::cout << Version::APP_NAME << " - Resource Packer\n";
|
||||
std::cout << "===============================\n";
|
||||
std::cout << "Usage: pack_resources [options] [input_dir] [output_file]\n\n";
|
||||
std::cout << "Options:\n";
|
||||
@@ -66,7 +65,7 @@ int main(int argc, char* argv[]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::cout << APP_NAME << " - Resource Packer\n";
|
||||
std::cout << Version::APP_NAME << " - Resource Packer\n";
|
||||
std::cout << "===============================\n";
|
||||
std::cout << "Input directory: " << data_dir << '\n';
|
||||
std::cout << "Output file: " << output_file << '\n';
|
||||
|
||||
Reference in New Issue
Block a user