@@ -3,8 +3,9 @@ cmake_minimum_required(VERSION 3.31.6)
33set (CMAKE_CXX_STANDARD 20)
44set (CMAKE_CXX_STANDARD_REQUIRED ON )
55set (CMAKE_CXX_EXTENSIONS OFF )
6- set (DIR_SRC src/cpp)
7- set (DIR_SRC_COMMON src/cpp/fs)
6+ set (DIR_SRC ${CMAKE_CURRENT_SOURCE_DIR} /src/cpp)
7+ set (DIR_SRC_COMMON ${CMAKE_CURRENT_SOURCE_DIR} /src/cpp/fs)
8+ set (FILE_ENV ${CMAKE_CURRENT_SOURCE_DIR} /.env)
89
910if (NOT VCPKG_ROOT)
1011 set (VCPKG_ROOT $ENV{VCPKG_ROOT} )
@@ -119,9 +120,9 @@ endif()
119120message ("CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS} " )
120121
121122# HACK: look for version in parent folder .env
122- if (EXISTS ".env " )
123- execute_process (COMMAND git log -n1 --pretty=%h .env OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE HASH_ENV)
124- file (STRINGS ".env " CONFIG REGEX "^[ ]*[A-Za-z0-9_]+[ ]*=" )
123+ if (EXISTS "${FILE_ENV} " )
124+ execute_process (COMMAND git log -n1 --pretty=%h ${FILE_ENV} OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE HASH_ENV)
125+ file (STRINGS "${FILE_ENV} " CONFIG REGEX "^[ ]*[A-Za-z0-9_]+[ ]*=" )
125126 list (TRANSFORM CONFIG STRIP)
126127 list (TRANSFORM CONFIG REPLACE "([^=]+)=[ ]*(.*)" "set(\\ 1 \"\\ 2\" )\n " )
127128 message (${CONFIG} )
@@ -149,7 +150,7 @@ execute_process(COMMAND ${CMAKE_CXX_COMPILER})
149150file (GLOB_RECURSE FILES_USED ${DIR_SRC} /*.cpp ${DIR_SRC} /*.h)
150151list (FILTER FILES_USED EXCLUDE REGEX version *)
151152
152- set (FILE_VERSION_CPP ${DIR_SRC_COMMON} /version .cpp )
153+ set (FILE_VERSION_H ${DIR_SRC_COMMON} /version .h )
153154set (FILE_UNSTABLE_CPP ${DIR_SRC_COMMON} /unstable.cpp)
154155
155156# is anything in git changed?
@@ -185,15 +186,15 @@ endif()
185186
186187set (SPECIFIC_REVISION "v${VERSION} ${HASH} <${MODIFIED_TIME} >" )
187188message ("${SPECIFIC_REVISION} " )
188- set (VERSION_CODE "const char* SPECIFIC_REVISION = \" ${SPECIFIC_REVISION} \" ;\n " )
189- if (EXISTS FILE_VERSION_CPP )
190- file (STRINGS ${FILE_VERSION_CPP } VERSION_CODE_OLD)
189+ set (VERSION_CODE "constexpr char SPECIFIC_REVISION[]{ \" ${SPECIFIC_REVISION} \" } ;\n " )
190+ if (EXISTS FILE_VERSION_H )
191+ file (STRINGS ${FILE_VERSION_H } VERSION_CODE_OLD)
191192 # HACK: file(READ ...) is reacting to special characters, so compare substring
192193 string (FIND "${SPECIFIC_REVISION} " "${VERSION_CODE_OLD} " SAME_CODE)
193194endif ()
194195# if matched exiting file don't write
195196if (NOT 0 EQUAL SAME_CODE)
196- file (WRITE ${FILE_VERSION_CPP } "${VERSION_CODE} " )
197+ file (WRITE ${FILE_VERSION_H } "${VERSION_CODE} " )
197198endif ()
198199
199200set_source_files_properties (${FILE_UNSTABLE_CPP} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS_RELEASE} " )
0 commit comments