summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-02-03 15:59:42 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-02-08 10:59:59 -0600
commit150b938b4922ec162bcb593c365e3d3616e0dbd7 (patch)
treeedc3cf391f8971e98752fe1c52f8513afeb71cef
parentd3ca6c67f1b8fbf5d71c307e71ba89a483ec75bc (diff)
downloadqtlocation-mapboxgl-150b938b4922ec162bcb593c365e3d3616e0dbd7.tar.gz
[build, ios, macos] Simplify version portion of user agent string
The X.Y.Z version portion was unreliable, as it pulled from the latest tag regardless of platform. Set version to 0.0.0 and retrieve only the hash, which allows us to drop the node/npm dependency.
-rw-r--r--CMakeLists.txt12
-rw-r--r--Makefile2
-rw-r--r--cmake/core-files.cmake3
-rw-r--r--cmake/core.cmake21
-rw-r--r--cmake/mbgl.cmake2
-rw-r--r--cmake/test.cmake1
-rw-r--r--platform/android/config.cmake1
-rw-r--r--platform/darwin/src/http_file_source.mm5
-rwxr-xr-xscripts/build-version.js81
-rw-r--r--src/mbgl/util/version.cpp9
-rw-r--r--src/mbgl/util/version.hpp9
-rw-r--r--src/mbgl/util/version_info.cpp14
12 files changed, 34 insertions, 126 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a48d544538..48c62007ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,6 +27,18 @@ if(IS_CI_BUILD)
add_compile_options(-DCI_BUILD=1)
endif()
+if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
+ exec_program(
+ "git"
+ ${CMAKE_SOURCE_DIR}
+ ARGS "rev-parse --short=8 HEAD"
+ OUTPUT_VARIABLE MBGL_VERSION_REV )
+else()
+ set(MBGL_VERSION_REV 00000000)
+endif()
+
+set_source_files_properties(src/mbgl/util/version.cpp PROPERTIES COMPILE_DEFINITIONS MBGL_VERSION_REV="${MBGL_VERSION_REV}")
+
mason_use(geometry VERSION 0.9.0 HEADER_ONLY)
mason_use(variant VERSION 1.1.4 HEADER_ONLY)
mason_use(unique_resource VERSION dev HEADER_ONLY)
diff --git a/Makefile b/Makefile
index a1283c8695..a80f496f13 100644
--- a/Makefile
+++ b/Makefile
@@ -194,7 +194,6 @@ compdb: $(BUILD_DEPS) $(TEST_DEPS) $(MACOS_COMPDB_PATH)/Makefile
clang-tools: compdb
if test -z $(CLANG_TIDY); then .mason/mason install clang-tidy 3.9.1; fi
if test -z $(CLANG_FORMAT); then .mason/mason install clang-format 3.9.1; fi
- $(MAKE) -C $(MACOS_COMPDB_PATH) mbgl-headers
.PHONY: tidy
tidy: clang-tools
@@ -366,7 +365,6 @@ compdb: $(LINUX_BUILD)
clang-tools: compdb
if test -z $(CLANG_TIDY); then .mason/mason install clang-tidy 3.9.1; fi
if test -z $(CLANG_FORMAT); then .mason/mason install clang-format 3.9.1; fi
- $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-headers
.PHONY: tidy
tidy: clang-tools
diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake
index a481249d61..47e486571f 100644
--- a/cmake/core-files.cmake
+++ b/cmake/core-files.cmake
@@ -519,7 +519,8 @@ set(MBGL_CORE_FILES
src/mbgl/util/url.cpp
src/mbgl/util/url.hpp
src/mbgl/util/utf.hpp
- src/mbgl/util/version_info.cpp
+ src/mbgl/util/version.cpp
+ src/mbgl/util/version.hpp
src/mbgl/util/work_queue.cpp
src/mbgl/util/work_queue.hpp
src/mbgl/util/work_request.cpp
diff --git a/cmake/core.cmake b/cmake/core.cmake
index f893e1571e..59de7708b6 100644
--- a/cmake/core.cmake
+++ b/cmake/core.cmake
@@ -1,27 +1,7 @@
-set(MBGL_VERSION_DEPS package.json)
-if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
- set(MBGL_VERSION_DEPS ${MBGL_VERSION_DEPS} .git/HEAD)
-endif()
-
-add_custom_command(
- OUTPUT ${MBGL_GENERATED}/include/mbgl/util/version.hpp
- DEPENDS ${MBGL_VERSION_DEPS}
- COMMAND ${NodeJS_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/build-version.js ${MBGL_GENERATED}
- VERBATIM
-)
-
-add_custom_target(mbgl-headers DEPENDS
- ${MBGL_GENERATED}/include/mbgl/util/version.hpp
-)
-
add_library(mbgl-core STATIC
${MBGL_CORE_FILES}
)
-add_dependencies(mbgl-core
- mbgl-headers
-)
-
target_compile_options(mbgl-core
PRIVATE -fPIC
PRIVATE -fvisibility-inlines-hidden
@@ -30,7 +10,6 @@ target_compile_options(mbgl-core
target_include_directories(mbgl-core
PUBLIC include
PUBLIC src # TODO: make private
- PRIVATE ${MBGL_GENERATED}/include
)
target_add_mason_package(mbgl-core PUBLIC geometry)
diff --git a/cmake/mbgl.cmake b/cmake/mbgl.cmake
index 4002257bb4..ca0487ef34 100644
--- a/cmake/mbgl.cmake
+++ b/cmake/mbgl.cmake
@@ -10,8 +10,6 @@ if (NOT MASON_PLATFORM)
set(MASON_PLATFORM "${MBGL_PLATFORM}")
endif()
-set(MBGL_GENERATED ${CMAKE_BINARY_DIR}/generated/${CMAKE_CFG_INTDIR})
-
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/node_modules/node-cmake/FindNodeJS.cmake)
message(FATAL_ERROR "Can't find node-cmake")
endif()
diff --git a/cmake/test.cmake b/cmake/test.cmake
index fc7a22874c..2a83a633c0 100644
--- a/cmake/test.cmake
+++ b/cmake/test.cmake
@@ -14,7 +14,6 @@ target_include_directories(mbgl-test
PRIVATE test/include
PRIVATE test/src
PRIVATE platform/default
- PRIVATE ${MBGL_GENERATED}/include
)
target_link_libraries(mbgl-test
diff --git a/platform/android/config.cmake b/platform/android/config.cmake
index 7d554dc786..9d8858ac0d 100644
--- a/platform/android/config.cmake
+++ b/platform/android/config.cmake
@@ -237,7 +237,6 @@ target_include_directories(mbgl-test
PRIVATE test/include
PRIVATE test/src
PRIVATE platform/default
- PRIVATE ${MBGL_GENERATED}/include
)
target_link_libraries(mbgl-test
diff --git a/platform/darwin/src/http_file_source.mm b/platform/darwin/src/http_file_source.mm
index f4b2f8af01..649cebb47f 100644
--- a/platform/darwin/src/http_file_source.mm
+++ b/platform/darwin/src/http_file_source.mm
@@ -4,7 +4,6 @@
#include <mbgl/util/http_header.hpp>
#include <mbgl/util/async_task.hpp>
-
#include <mbgl/util/version.hpp>
#import <Foundation/Foundation.h>
@@ -133,8 +132,8 @@ NSString *HTTPFileSource::Impl::getUserAgent() const {
// Avoid %s here because it inserts hidden bidirectional markers on macOS when the system
// language is set to a right-to-left language.
- [userAgentComponents addObject:[NSString stringWithFormat:@"MapboxGL/%@ (%@)",
- CFSTR(MBGL_VERSION_STRING), CFSTR(MBGL_VERSION_REV)]];
+ [userAgentComponents addObject:[NSString stringWithFormat:@"MapboxGL/0.0.0 (%@)",
+ @(mbgl::version::revision)]];
NSString *systemName = @"Darwin";
#if TARGET_OS_IPHONE
diff --git a/scripts/build-version.js b/scripts/build-version.js
deleted file mode 100755
index eb8a00f72c..0000000000
--- a/scripts/build-version.js
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env node
-
-var path = require('path');
-var fs = require('fs');
-var util = require('util');
-var mkdirp = require('mkdirp');
-var execSync = require('child_process').execSync;
-
-const DEFAULT_TAG = [0, 0, 0];
-const DEFAULT_REV = 'unknown';
-
-function is_git_repo() {
- try {
- execSync('git rev-parse', { stdio: ['ignore', 'ignore', 'ignore'] });
- return true;
- } catch(err) {
- return false;
- }
-}
-
-
-function parse_tag(raw_tag) {
- return raw_tag.replace(/[^0-9.]/g, '').split('.').map(parseFloat).slice(0, 3);
-}
-
-function parse_rev(raw_rev) {
- return raw_rev.substr(0, 8);
-}
-
-var output_dir = process.argv[2];
-
-if (!output_dir) {
- console.warn('No output directory given.');
- console.warn('Usage: %s [output dir]', path.basename(process.argv[1]));
- process.exit(1);
-}
-
-if (is_git_repo()) {
- var raw_tag = execSync('git describe --tags --always --abbrev=0').toString().trim();
- var raw_rev = execSync('git rev-parse HEAD').toString().trim();
-
- // When they're identical, the "git describe" can't find a tag and reports the rev instead.
- if (raw_tag == raw_rev) {
- var tag = DEFAULT_TAG
- var rev = parse_rev(raw_rev)
- } else {
- var tag = parse_tag(raw_tag)
- var rev = parse_rev(raw_rev)
- }
-} else {
- var tag = DEFAULT_TAG;
- var rev = DEFAULT_REV;
-}
-
-console.log('Tag: %d.%d.%d', tag[0], tag[1], tag[2]);
-console.log('Rev: %s', rev);
-
-var header = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n' +
- '#pragma once\n' +
- '\n' +
- '#define MBGL_VERSION 0x' + (tag[0] << 16 | tag[1] << 8 | tag[2]).toString(16) + '\n' +
- '#define MBGL_VERSION_STRING "' + tag[0] + '.' + tag[1] + '.' + tag[2] + '"\n' +
- '#define MBGL_VERSION_MAJOR ' + tag[0] + '\n' +
- '#define MBGL_VERSION_MINOR ' + tag[1] + '\n' +
- '#define MBGL_VERSION_PATCH ' + tag[2] + '\n' +
- '#define MBGL_VERSION_REV "' + rev + '"\n' +
- '\n' +
- 'namespace mbgl {\n' +
- 'namespace version {\n' +
- '\n' +
- 'extern const int major, minor, patch;\n' +
- 'extern const char *revision;\n' +
- 'extern const char *string;\n' +
- 'extern const unsigned int number;\n' +
- '\n' +
- '} // namespace version\n' +
- '} // namespace mbgl\n';
-
-var header_path = path.join(output_dir, 'include/mbgl/util/version.hpp')
-mkdirp.sync(path.dirname(header_path));
-fs.writeFileSync(header_path, header);
diff --git a/src/mbgl/util/version.cpp b/src/mbgl/util/version.cpp
new file mode 100644
index 0000000000..fcb31f0b71
--- /dev/null
+++ b/src/mbgl/util/version.cpp
@@ -0,0 +1,9 @@
+#include <mbgl/util/version.hpp>
+
+namespace mbgl {
+namespace version {
+
+const char* revision = MBGL_VERSION_REV;
+
+} // namespace version
+} // namespace mbgl
diff --git a/src/mbgl/util/version.hpp b/src/mbgl/util/version.hpp
new file mode 100644
index 0000000000..e652016485
--- /dev/null
+++ b/src/mbgl/util/version.hpp
@@ -0,0 +1,9 @@
+#pragma once
+
+namespace mbgl {
+namespace version {
+
+extern const char* revision;
+
+} // namespace version
+} // namespace mbgl
diff --git a/src/mbgl/util/version_info.cpp b/src/mbgl/util/version_info.cpp
deleted file mode 100644
index f0fb139bca..0000000000
--- a/src/mbgl/util/version_info.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <mbgl/util/version.hpp>
-
-namespace mbgl {
-namespace version {
-
-const int major = MBGL_VERSION_MAJOR;
-const int minor = MBGL_VERSION_MINOR;
-const int patch = MBGL_VERSION_PATCH;
-const char *revision = MBGL_VERSION_REV;
-const char *string = MBGL_VERSION_STRING;
-const unsigned int number = MBGL_VERSION;
-
-} // namespace version
-} // namespace mbgl