CMake: Fix .ottdrev-vc read and write
This commit is contained in:
@@ -96,6 +96,41 @@ if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|||||||
|
|
||||||
# Restore LC_ALL
|
# Restore LC_ALL
|
||||||
set(ENV{LC_ALL} "${SAVED_LC_ALL}")
|
set(ENV{LC_ALL} "${SAVED_LC_ALL}")
|
||||||
|
elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev-vc")
|
||||||
|
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev-vc" OTTDREVVC)
|
||||||
|
string(REPLACE "\n" ";" OTTDREVVC "${OTTDREVVC}")
|
||||||
|
list(GET OTTDREVVC 0 OTTDREV)
|
||||||
|
list(GET OTTDREVVC 1 SRCHASH)
|
||||||
|
string(REPLACE "\t" ";" OTTDREV "${OTTDREV}")
|
||||||
|
list(GET OTTDREV 0 REV_VERSION)
|
||||||
|
list(GET OTTDREV 1 REV_ISODATE)
|
||||||
|
list(GET OTTDREV 2 REV_MODIFIED)
|
||||||
|
list(GET OTTDREV 3 REV_HASH)
|
||||||
|
list(GET OTTDREV 4 REV_ISTAG)
|
||||||
|
list(GET OTTDREV 5 REV_ISSTABLETAG)
|
||||||
|
list(GET OTTDREV 6 REV_YEAR)
|
||||||
|
if (REV_MODIFIED EQUAL 2)
|
||||||
|
string(REGEX REPLACE "M$" "" REV_VERSION "${REV_VERSION}")
|
||||||
|
endif ()
|
||||||
|
execute_process(COMMAND ./version_utils.sh -o
|
||||||
|
RESULT_VARIABLE CAN_CHECK_MODIFIED
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
if (CAN_CHECK_MODIFIED EQUAL 0)
|
||||||
|
execute_process(COMMAND ./version_utils.sh -s
|
||||||
|
OUTPUT_VARIABLE CURRENT_HASH
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
if (NOT CURRENT_HASH STREQUAL SRCHASH)
|
||||||
|
set(REV_MODIFIED 2)
|
||||||
|
string(SUBSTRING "${CURRENT_HASH}" 0 8 SHORT_CURRENT_HASH)
|
||||||
|
set(REV_VERSION "${REV_VERSION}-H${SHORT_CURRENT_HASH}")
|
||||||
|
set(REV_MODIFIED 2)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
set(REV_MODIFIED 1)
|
||||||
|
endif ()
|
||||||
elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev")
|
elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev")
|
||||||
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev" OTTDREV)
|
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev" OTTDREV)
|
||||||
string(REPLACE "\n" "" OTTDREV "${OTTDREV}")
|
string(REPLACE "\n" "" OTTDREV "${OTTDREV}")
|
||||||
|
@@ -80,17 +80,16 @@ function output_hash_list {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function read_source {
|
function read_source {
|
||||||
handle_source "source.list" "$1"
|
handle_source "CMakeLists.txt" "$1"
|
||||||
handle_source "config.lib" "$1"
|
|
||||||
handle_source "configure" "$1"
|
|
||||||
handle_source "Makefile.in" "$1"
|
|
||||||
handle_source "Makefile.bundle.in" "$1"
|
|
||||||
handle_source "Makefile.grf.in" "$1"
|
|
||||||
handle_source "Makefile.setting.in" "$1"
|
|
||||||
handle_source "Makefile.src.in" "$1"
|
|
||||||
while IFS=$'\n' read -r line; do
|
while IFS=$'\n' read -r line; do
|
||||||
handle_source "src/$line" "$1"
|
handle_source "$line" "$1"
|
||||||
done < <( sed -e 's/^[ \t]*//; s/[ \t]*$//;' -e '/^$/ d;' -e '/^#/ d;' -e '/^..\// d;' -e 's/^rev.cpp$/rev.cpp.in/;' "source.list" )
|
done < <( find -L cmake -type f -name '*.cmake' -print | sort )
|
||||||
|
while IFS=$'\n' read -r line; do
|
||||||
|
handle_source "$line" "$1"
|
||||||
|
done < <( find -L src -type f \( -name 'CMakeLists.txt' -o -name '*.cpp' -o -name '*.c' -o -name '*.hpp' -o -name '*.h' -o -name '*.sq' -o -name '*.mm' -o -name '*.in' \) -print | sort )
|
||||||
|
while IFS=$'\n' read -r line; do
|
||||||
|
handle_source "$line" "$1"
|
||||||
|
done < <( find -L src/lang -type f -name '*.txt' -print | sort )
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -z "$HASH" -a -z "$NAMES" -a -z "$HASHLIST" -a -z "$TESTOK" -a -z "$WRITE" -a -z "$RELEASETAG" ]; then
|
if [ -z "$HASH" -a -z "$NAMES" -a -z "$HASHLIST" -a -z "$TESTOK" -a -z "$WRITE" -a -z "$RELEASETAG" ]; then
|
||||||
|
Reference in New Issue
Block a user