mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
cmake: Better handling of git
This fixes some problems: * When building out of tree the git command will work in the wrong directory. * The user may not actually have git installed. * The source tree may not actually have the .git directory, for example when downloading a source archive from github.
This commit is contained in:
parent
c6fdaa899f
commit
ea98e44d7f
|
@ -12,11 +12,20 @@ option(GL_PROFILE "Set to ON to turn on GL profiling" ${GL_PROFILE})
|
||||||
|
|
||||||
# run script to generate Revision.h
|
# run script to generate Revision.h
|
||||||
set(PATH_REVISION "Revision.h")
|
set(PATH_REVISION "Revision.h")
|
||||||
add_custom_command(
|
find_package(Git)
|
||||||
|
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/../.git")
|
||||||
|
add_custom_command(
|
||||||
OUTPUT ${PATH_REVISION}
|
OUTPUT ${PATH_REVISION}
|
||||||
COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh
|
COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh
|
||||||
COMMENT "Generate Git version"
|
COMMENT "Generate Git version"
|
||||||
)
|
)
|
||||||
|
else(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/../.git")
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${PATH_REVISION}
|
||||||
|
COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh --nogit
|
||||||
|
COMMENT "Generate version"
|
||||||
|
)
|
||||||
|
endif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/../.git")
|
||||||
set_property(SOURCE ${PATH_REVISION} PROPERTY SKIP_AUTOGEN ON)
|
set_property(SOURCE ${PATH_REVISION} PROPERTY SKIP_AUTOGEN ON)
|
||||||
|
|
||||||
project( GLideN64 )
|
project( GLideN64 )
|
||||||
|
@ -534,7 +543,6 @@ if(GLIDEN64_BUILD_TYPE STREQUAL "Release")
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugin/Release
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugin/Release
|
||||||
)
|
)
|
||||||
|
|
||||||
endif(GLIDEN64_BUILD_TYPE STREQUAL "Release")
|
endif(GLIDEN64_BUILD_TYPE STREQUAL "Release")
|
||||||
|
|
||||||
if(GLIDEN64_BUILD_TYPE STREQUAL "Debug")
|
if(GLIDEN64_BUILD_TYPE STREQUAL "Debug")
|
||||||
|
|
|
@ -1,12 +1,28 @@
|
||||||
SCRIPT_DIRECTORY=`dirname "$0"`
|
#!/bin/sh
|
||||||
rev=\"`git rev-parse --short HEAD`\"
|
|
||||||
lastrev=$(head -n 1 "$SCRIPT_DIRECTORY/Revision.h" 2> /dev/null | cut -d ' ' -f3)
|
|
||||||
|
|
||||||
echo current revision $rev
|
set -eu
|
||||||
echo last build revision $lastrev
|
|
||||||
|
cd -- "$(cd -- "${0%/*}/" && pwd -P)"
|
||||||
|
|
||||||
|
header='./Revision.h'
|
||||||
|
|
||||||
|
if [ "${1:-}" != --nogit ]
|
||||||
|
then
|
||||||
|
rev="\"$(git rev-parse --short HEAD)\"" || rev='""'
|
||||||
|
else
|
||||||
|
rev='""'
|
||||||
|
fi
|
||||||
|
|
||||||
|
lastrev=''
|
||||||
|
if [ -e "$header" ]
|
||||||
|
then
|
||||||
|
lastrev="$(head -n 1 "$header" 2> /dev/null | cut -d ' ' -f3)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s\n' "current revision $rev" "last build revision $lastrev"
|
||||||
|
|
||||||
if [ "$lastrev" != "$rev" ]
|
if [ "$lastrev" != "$rev" ]
|
||||||
then
|
then
|
||||||
echo "#define PLUGIN_REVISION $rev" > "$SCRIPT_DIRECTORY/Revision.h"
|
printf '%s\n' "#define PLUGIN_REVISION $rev" \
|
||||||
echo "#define PLUGIN_REVISION_W L$rev" >> "$SCRIPT_DIRECTORY/Revision.h"
|
"#define PLUGIN_REVISION_W L$rev" > "$header"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user