aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Package.cmake9
-rw-r--r--cmake/Version.cmake94
2 files changed, 103 insertions, 0 deletions
diff --git a/cmake/Package.cmake b/cmake/Package.cmake
new file mode 100644
index 0000000..da65de7
--- /dev/null
+++ b/cmake/Package.cmake
@@ -0,0 +1,9 @@
+if (UNIX)
+ set (CPACK_PACKAGE_VERSION_MAJOR ${BARRIER_VERSION_MAJOR})
+ set (CPACK_PACKAGE_VERSION_MINOR ${BARRIER_VERSION_MINOR})
+ set (CPACK_PACKAGE_VERSION_PATCH ${BARRIER_VERSION_PATCH})
+ set (CPACK_GENERATOR "TBZ2")
+ set (CPACK_SOURCE_GENERATOR "TXZ")
+ set (CPACK_SOURCE_IGNORE_FILES "/build/;\.gitignore$;/\.git/;/.github/;\.swp$;build_env\.*")
+ include (CPack)
+endif()
diff --git a/cmake/Version.cmake b/cmake/Version.cmake
new file mode 100644
index 0000000..2f38df2
--- /dev/null
+++ b/cmake/Version.cmake
@@ -0,0 +1,94 @@
+cmake_minimum_required (VERSION 3.4)
+
+set (BARRIER_VERSION_MAJOR 2)
+set (BARRIER_VERSION_MINOR 0)
+set (BARRIER_VERSION_PATCH 0)
+
+#
+# Barrier Version
+#
+if (NOT DEFINED BARRIER_VERSION_MAJOR)
+ if (DEFINED ENV{BARRIER_VERSION_MAJOR})
+ set (BARRIER_VERSION_MAJOR $ENV{BARRIER_VERSION_MAJOR})
+ else()
+ set (BARRIER_VERSION_MAJOR 1)
+ endif()
+endif()
+
+if (NOT DEFINED BARRIER_VERSION_MINOR)
+ if (DEFINED ENV{BARRIER_VERSION_MINOR})
+ set (BARRIER_VERSION_MINOR $ENV{BARRIER_VERSION_MINOR})
+ else()
+ set (BARRIER_VERSION_MINOR 9)
+ endif()
+endif()
+
+if (NOT DEFINED BARRIER_VERSION_PATCH)
+ if (DEFINED ENV{BARRIER_VERSION_PATCH})
+ set (BARRIER_VERSION_PATCH $ENV{BARRIER_VERSION_PATCH})
+ else()
+ set (BARRIER_VERSION_PATCH 0)
+ message (WARNING "Barrier version wasn't set. Set to ${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
+ endif()
+endif()
+
+if (NOT DEFINED BARRIER_VERSION_STAGE)
+ if (DEFINED ENV{BARRIER_VERSION_STAGE})
+ set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
+ else()
+ set (BARRIER_VERSION_STAGE "snapshot")
+ endif()
+endif()
+
+if (NOT DEFINED BARRIER_REVISION)
+ if (DEFINED ENV{GIT_COMMIT})
+ string (SUBSTRING $ENV{GIT_COMMIT} 0 8 BARRIER_REVISION)
+ else()
+ execute_process (
+ COMMAND git rev-parse --short=8 HEAD
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE BARRIER_REVISION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ endif()
+endif()
+
+if (DEFINED BARRIER_REVISION)
+ string(LENGTH ${BARRIER_REVISION} BARRIER_REVISION_LENGTH)
+ if (NOT ((BARRIER_REVISION MATCHES "^[a-f0-9]+") AND (BARRIER_REVISION_LENGTH EQUAL "8")))
+ message (FATAL_ERROR "BARRIER_REVISION ('${BARRIER_REVISION}') should be a short commit hash")
+ endif()
+ unset (BARRIER_REVISION_LENGTH)
+else()
+ set (BARRIER_REVISION "0badc0de")
+endif()
+
+if (DEFINED ENV{BUILD_NUMBER})
+ set (BARRIER_BUILD_NUMBER $ENV{BUILD_NUMBER})
+else()
+ set (BARRIER_BUILD_NUMBER 1)
+endif()
+
+string (TIMESTAMP BARRIER_BUILD_DATE "%Y%m%d" UTC)
+set (BARRIER_SNAPSHOT_INFO ".${BARRIER_VERSION_STAGE}.${BARRIER_REVISION}")
+
+if (BARRIER_VERSION_STAGE STREQUAL "snapshot")
+ set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}.b${BARRIER_BUILD_NUMBER}-${BARRIER_REVISION}")
+else()
+ set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}")
+endif()
+
+set (BARRIER_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}-${BARRIER_VERSION_STAGE}")
+set (BARRIER_VERSION_STRING "${BARRIER_VERSION}-${BARRIER_VERSION_TAG}")
+message (STATUS "Full Barrier version string is '" ${BARRIER_VERSION_STRING} "'")
+
+add_definitions (-DBARRIER_VERSION="${BARRIER_VERSION}")
+add_definitions (-DBARRIER_VERSION_STRING="${BARRIER_VERSION_STRING}")
+add_definitions (-DBARRIER_REVISION="${BARRIER_REVISION}")
+add_definitions (-DBARRIER_BUILD_DATE="${BARRIER_BUILD_DATE}")
+add_definitions (-DBARRIER_BUILD_NUMBER=${BARRIER_BUILD_NUMBER})
+
+if (BARRIER_DEVELOPER_MODE)
+ add_definitions (-DBARRIER_DEVELOPER_MODE=1)
+endif()
+