aboutsummaryrefslogtreecommitdiff
path: root/version.cmake
diff options
context:
space:
mode:
authorstoffu <stoffu@protonmail.ch>2017-09-14 08:28:23 +0900
committerstoffu <stoffu@protonmail.ch>2017-09-21 07:47:37 +0900
commite29282d2081709e126b1fb67f49e9d4a666794da (patch)
tree1787dbfeb55ffaa94a34813cf53c741544d2dd3e /version.cmake
parentMerge pull request #2441 (diff)
downloadmonero-e29282d2081709e126b1fb67f49e9d4a666794da.tar.xz
build: auto update version info without manually deleting version.h
Diffstat (limited to 'version.cmake')
-rw-r--r--version.cmake47
1 files changed, 32 insertions, 15 deletions
diff --git a/version.cmake b/version.cmake
index 80f1c40b8..75343c381 100644
--- a/version.cmake
+++ b/version.cmake
@@ -1,32 +1,49 @@
+# Copyright (c) 2014-2017, The Monero Project
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other
+# materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors may be
+# used to endorse or promote products derived from this software without specific
+# prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
function (write_static_version_header hash)
set(VERSIONTAG "${hash}")
- configure_file("src/version.h.in" "version/version.h")
- add_custom_target(version ALL)
+ configure_file("src/version.cpp.in" "version.cpp")
endfunction ()
-file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/version")
find_package(Git QUIET)
if ("$Format:$" STREQUAL "")
# We're in a tarball; use hard-coded variables.
write_static_version_header("release")
elseif (GIT_FOUND OR Git_FOUND)
message(STATUS "Found Git: ${GIT_EXECUTABLE}")
- set(extra_output)
- if (CMAKE_GENERATOR MATCHES "Ninja")
- # Ninja will not rerun the command every time if the file doesn't change,
- # so inject this bogus output so that it always runs.
- set(extra_output "${CMAKE_SOURCE_DIR}/.force-git-version-check")
- endif ()
- add_custom_command(
- OUTPUT "${CMAKE_BINARY_DIR}/version/version.h"
- ${extra_output}
+ add_custom_target(genversion ALL
COMMAND "${CMAKE_COMMAND}"
"-D" "GIT=${GIT_EXECUTABLE}"
- "-D" "TO=${CMAKE_BINARY_DIR}/version/version.h"
+ "-D" "TO=${CMAKE_BINARY_DIR}/version.cpp"
"-P" "src/version.cmake"
+ BYPRODUCTS "${CMAKE_BINARY_DIR}/version.cpp"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
- add_custom_target(version ALL
- DEPENDS "${CMAKE_BINARY_DIR}/version/version.h")
else()
message(STATUS "WARNING: Git was not found!")
write_static_version_header("unknown")