CMake adjusted to allow proper releasing.

Mac side is ready.
This commit is contained in:
Jason Felds
2015-03-31 21:17:20 -04:00
parent 2291cd7f4d
commit b3addbedbc
4 changed files with 40 additions and 23 deletions
+11 -15
View File
@@ -79,22 +79,18 @@ set(SM_VERSION_MINOR 0)
set(SM_VERSION_PATCH 7)
set(SM_VERSION_TRADITIONAL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}.${SM_VERSION_PATCH}")
if(WITH_FULL_RELEASE EQUAL ON)
set(SM_VERSION_FULL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}.${SM_VERSION_PATCH}")
else()
# Using the deprecated version for now to keep cmake 2.8 users happy.
exec_program(git "${SM_ROOT_DIR}"
ARGS "rev-parse" "--short" "HEAD"
OUTPUT_VARIABLE SM_VERSION_GIT_HASH
RETURN_VALUE ret
)
# Using the deprecated version for now to keep cmake 2.8 users happy.
exec_program(git "${SM_ROOT_DIR}"
ARGS "rev-parse" "--short" "HEAD"
OUTPUT_VARIABLE SM_VERSION_GIT_HASH
RETURN_VALUE ret
)
if(NOT (ret STREQUAL "0"))
set(SM_VERSION_GIT_HASH "UNKNOWN")
set(SM_VERSION_FULL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}-${SM_VERSION_GIT_HASH}")
else()
set(SM_VERSION_FULL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}-git-${SM_VERSION_GIT_HASH}")
endif()
if(NOT (ret STREQUAL "0"))
set(SM_VERSION_GIT_HASH "UNKNOWN")
set(SM_VERSION_FULL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}-${SM_VERSION_GIT_HASH}")
else()
set(SM_VERSION_FULL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}-git-${SM_VERSION_GIT_HASH}")
endif()
# Allow for finding our libraries in a standard location.
+20 -8
View File
@@ -29,14 +29,26 @@ File.open("#{Dir.pwd}/ProductInfo.h", "r") do |f|
end
end
end
# open ver.h in read-only mode
File.open("#{Dir.pwd}/ver.h", "r") do |f|
# read each line, matching for product version
f.each do |line|
if line.match( /^#define\s+product_version\s+"(.*?)"/ )
version = $1
end
end
# Determine if the Cmake generated verstub.cpp is available.
File.open("#{Dir.pwd}/verstub.cpp", "r") do |verFile|
verFile.each do |verLine|
if verLine.match( /^extern char const \* const product_version \= "(.*?)"/ )
version = $1
end
end
end
if (version.length == 0)
# open ver.h in read-only mode
File.open("#{Dir.pwd}/ver.h", "r") do |f|
# read each line, matching for product version
f.each do |line|
if line.match( /^#define\s+product_version\s+"(.*?)"/ )
version = $1
end
end
end
end
# replace whitespace with hyphens in the version string
+5
View File
@@ -9,6 +9,11 @@ include_directories(${PROJECT_BINARY_DIR})
add_executable("VersionUpdater" Main.cpp "${PROJECT_BINARY_DIR}/version.hpp")
if (WITH_FULL_RELEASE)
sm_add_compile_definition("VersionUpdater" IS_FULL_RELEASE)
message(STATUS "Full release mode engaged.")
endif()
set_property(TARGET "VersionUpdater" PROPERTY FOLDER "Internal Libraries")
if(MSVC)
+4
View File
@@ -5,7 +5,11 @@ int smVersionMajor = @SM_VERSION_MAJOR@;
int smVersionMinor = @SM_VERSION_MINOR@;
int smVersionPatch = @SM_VERSION_PATCH@;
char const * const smVersionGitHash = "@SM_VERSION_GIT_HASH@";
#if defined(IS_FULL_RELEASE)
char const * const smVersionFull = "@SM_VERSION_TRADITIONAL@";
#else
char const * const smVersionFull = "@SM_VERSION_FULL@";
#endif
char const * const smVersionTraditional = "@SM_VERSION_TRADITIONAL@";
#endif