From 5f20a56e3d948d44a856a529d490e330a1adb57f Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:06:02 +0200 Subject: cmake: generate version.cc --- CMakeLists.txt | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 67064d76..cb9dc8b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,26 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/) include(GetGitRevisionDescription) find_package(Git QUIET) if(GIT_FOUND) - git_describe(OPENTRACK__COMMIT --tags --always) + git_describe(OPENTRACK_COMMIT --tags --always) endif() -file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK__COMMIT}\"") +file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"") + +## start crapola + +file(WRITE ${CMAKE_BINARY_DIR}/version.cc " +#include \"opentrack-compat/export.hpp\" + +#ifdef __cplusplus +extern \"C\" +#endif +OPENTRACK_EXPORT +const char* opentrack_version; + +const char* opentrack_version = \"${OPENTRACK_COMMIT}\"; +") + +## end crapola SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) @@ -187,7 +203,7 @@ if(filename-hash_0) endif() string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}") string(REPLACE "/" "-" filename-branch "${filename-branch_1}") -set(filename_0 "${OPENTRACK__COMMIT}") +set(filename_0 "${OPENTRACK_COMMIT}") set(filename "${CMAKE_BINARY_DIR}/${filename_0}.zip") add_custom_command(OUTPUT ${filename} COMMAND env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") @@ -274,11 +290,8 @@ opentrack_compat(opentrack-spline-widget) target_include_directories(opentrack-spline-widget PUBLIC qfunctionconfigurator/) target_link_libraries(opentrack-spline-widget ${MY_QT_LIBS}) -add_library(opentrack-version STATIC opentrack/version.cc) +add_library(opentrack-version STATIC ${CMAKE_BINARY_DIR}/version.cc) opentrack_compat(opentrack-version) -set_target_properties(opentrack-version PROPERTIES - COMPILE_DEFINITIONS - "OPENTRACK_VERSION=\"${OPENTRACK__COMMIT}\"") opentrack_library(opentrack-filter-accela ftnoir_filter_accela) target_link_libraries(opentrack-filter-accela opentrack-spline-widget) @@ -570,6 +583,6 @@ if(APPLE) \"${CMAKE_SOURCE_DIR}/macosx\" \"${CMAKE_INSTALL_PREFIX}\" \"${CMAKE_BINARY_DIR}\" - \"${OPENTRACK__COMMIT}\") + \"${OPENTRACK_COMMIT}\") ") endif() -- cgit v1.2.3 From 6b220145f9571681d10742f00ffb42ea226e3851 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:13:02 +0200 Subject: cmake: regen tarball even if exists --- CMakeLists.txt | 2 +- make-tar.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index cb9dc8b9..41b7f57d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -207,7 +207,7 @@ set(filename_0 "${OPENTRACK_COMMIT}") set(filename "${CMAKE_BINARY_DIR}/${filename_0}.zip") add_custom_command(OUTPUT ${filename} COMMAND env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") -add_custom_target(tarball DEPENDS ${filename}) +add_custom_target(tarball) opentrack_module(opentrack-api opentrack) diff --git a/make-tar.sh b/make-tar.sh index cd5abc56..8954a4ba 100644 --- a/make-tar.sh +++ b/make-tar.sh @@ -3,6 +3,8 @@ prefix="$1" filename="$2" +rm -fv "$filename" + if : && cd $(dirname -- "${prefix}") && zip -9r "${filename}" $(basename "${prefix}") -- cgit v1.2.3 From 69e9fbf84676e6f0b8d92a9df47f04a2077077b4 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:13:46 +0200 Subject: cmake: mark dirty tree --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 41b7f57d..b8b7f61a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/) include(GetGitRevisionDescription) find_package(Git QUIET) if(GIT_FOUND) - git_describe(OPENTRACK_COMMIT --tags --always) + git_describe(OPENTRACK_COMMIT --tags --always --dirty) endif() file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"") -- cgit v1.2.3 From f97698d16f9523ed04555d9a5ba0fff5d22ba05c Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:22:36 +0200 Subject: fix tarball target --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index b8b7f61a..992ea9ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,8 +206,8 @@ string(REPLACE "/" "-" filename-branch "${filename-branch_1}") set(filename_0 "${OPENTRACK_COMMIT}") set(filename "${CMAKE_BINARY_DIR}/${filename_0}.zip") -add_custom_command(OUTPUT ${filename} COMMAND env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") -add_custom_target(tarball) +add_custom_command(OUTPUT ${filename} COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") +add_custom_target(tarball DEPENDS "${filename}") opentrack_module(opentrack-api opentrack) -- cgit v1.2.3 From 96c2536411dea74dc8e60883bbd31201c18a4f17 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:33:06 +0200 Subject: cmake: don't regen version if none changed Fixes caused re-link of executable --- CMakeLists.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 992ea9ac..b9925b4f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \" ## start crapola -file(WRITE ${CMAKE_BINARY_DIR}/version.cc " +set(version-string " #include \"opentrack-compat/export.hpp\" #ifdef __cplusplus @@ -33,6 +33,15 @@ const char* opentrack_version; const char* opentrack_version = \"${OPENTRACK_COMMIT}\"; ") +set(crapola-ver) +if(EXISTS ${CMAKE_BINARY_DIR}/version.cc) + file(READ ${CMAKE_BINARY_DIR}/version.cc crapola-ver) +endif() + +if(NOT (crapola-ver STREQUAL version-string)) + file(WRITE ${CMAKE_BINARY_DIR}/version.cc "${version-string}") +endif() + ## end crapola SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) -- cgit v1.2.3 From 507ad23581797779f182adc116aae5556d2d2d78 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 11:37:18 +0200 Subject: cmake: add tarball timestamp so it gets rebuilt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index b9925b4f..197bad8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,12 +213,12 @@ endif() string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}") string(REPLACE "/" "-" filename-branch "${filename-branch_1}") set(filename_0 "${OPENTRACK_COMMIT}") -set(filename "${CMAKE_BINARY_DIR}/${filename_0}.zip") +string(TIMESTAMP filename_1 "%Y%m%d%H%M%S") +set(filename "${CMAKE_BINARY_DIR}/${filename_0}-${filename_1}.zip") add_custom_command(OUTPUT ${filename} COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") add_custom_target(tarball DEPENDS "${filename}") - opentrack_module(opentrack-api opentrack) opentrack_qt(opentrack-api) add_library(opentrack-api STATIC ${opentrack-api-all}) -- cgit v1.2.3 From 97b6c47b21f5d2bfb7a43969f67d6b3ad6edab28 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 17 Oct 2015 12:07:33 +0200 Subject: cmake: upload tarball to Dropbox but only if I'm the user --- CMakeLists.txt | 4 +++- make-tar.sh | 15 +++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 197bad8b..482bdb6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,7 +216,9 @@ set(filename_0 "${OPENTRACK_COMMIT}") string(TIMESTAMP filename_1 "%Y%m%d%H%M%S") set(filename "${CMAKE_BINARY_DIR}/${filename_0}-${filename_1}.zip") -add_custom_command(OUTPUT ${filename} COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") +add_custom_command(OUTPUT ${filename} COMMAND /usr/bin/env sh + "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" + "${filename}" "${CMAKE_BINARY_DIR}") add_custom_target(tarball DEPENDS "${filename}") opentrack_module(opentrack-api opentrack) diff --git a/make-tar.sh b/make-tar.sh index 8954a4ba..e831f16a 100644 --- a/make-tar.sh +++ b/make-tar.sh @@ -2,16 +2,23 @@ prefix="$1" filename="$2" +bin="$3" -rm -fv "$filename" +cmake --build "$bin" --target install || exit 1 if : && cd $(dirname -- "${prefix}") && zip -9r "${filename}" $(basename "${prefix}") then - ls -lh -- "${filename}" - case "$(uname -s)" in - CYGWIN_*) ls -lh -- "$(cygpath -w -- "$filename")";; + case "$USER,$(uname -s)" in + # for the script see https://github.com/andreafabrizi/Dropbox-Uploader + sthalik,CYGWIN_*) + dropbox_uploader.sh -p upload "$filename" / && + l="$(dropbox_uploader.sh share "/$filename")" && + f="$(echo "$l" | tr -d '\n\r' | egrep -o 'https://[^ ]+$')" && + test -n "$f" && { echo "$f"; echo -n "$f" | putclip; } + echo -ne '\a' ;; + *) ls -lh -- "${filename}" ;; esac else rm -fv -- "${filename}" -- cgit v1.2.3 From f1e71e68512bc58f3f41ba4566f9d1574773d742 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 18 Oct 2015 09:44:47 +0200 Subject: cmake: regen before making tarball Updates timestamp as it should. --- CMakeLists.txt | 9 +++++---- cmake/tarball.cmake | 8 ++++++++ make-tar.sh | 1 - 3 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 cmake/tarball.cmake (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 482bdb6c..78d9cab8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,10 +216,11 @@ set(filename_0 "${OPENTRACK_COMMIT}") string(TIMESTAMP filename_1 "%Y%m%d%H%M%S") set(filename "${CMAKE_BINARY_DIR}/${filename_0}-${filename_1}.zip") -add_custom_command(OUTPUT ${filename} COMMAND /usr/bin/env sh - "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" - "${filename}" "${CMAKE_BINARY_DIR}") -add_custom_target(tarball DEPENDS "${filename}") +add_custom_target(tarball-real) +add_custom_target(tarball-real2) +add_custom_command(TARGET tarball-real COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/tarball.cmake) +add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}" "${CMAKE_BINARY_DIR}") +add_custom_target(tarball DEPENDS tarball-real) opentrack_module(opentrack-api opentrack) opentrack_qt(opentrack-api) diff --git a/cmake/tarball.cmake b/cmake/tarball.cmake new file mode 100644 index 00000000..5761e24a --- /dev/null +++ b/cmake/tarball.cmake @@ -0,0 +1,8 @@ +execute_process(COMMAND cmake ${CMAKE_BINARY_DIR} RESULT_VARIABLE ret) +if(NOT ret EQUAL 0) + message(FATAL_ERROR "can't regen") +endif() +execute_process(COMMAND cmake --build ${CMAKE_BINARY_DIR} --target tarball-real2) +if(NOT ret EQUAL 0) + message(FATAL_ERROR "can't make tarball") +endif() diff --git a/make-tar.sh b/make-tar.sh index 9d1af1f3..3e119d12 100644 --- a/make-tar.sh +++ b/make-tar.sh @@ -4,7 +4,6 @@ prefix="$1" filename="$2" bin="$3" -cmake "$bin" || exit 1 cmake --build "$bin" --target install || exit 1 if : && -- cgit v1.2.3 From 7eab0fc411abe57f6623f42fe984fd3d0cceca32 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 20 Oct 2015 05:39:41 +0200 Subject: cmake: no timestamp for tag builds --- CMakeLists.txt | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 78d9cab8..564fc736 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ include(GetGitRevisionDescription) find_package(Git QUIET) if(GIT_FOUND) git_describe(OPENTRACK_COMMIT --tags --always --dirty) + git_describe(OPENTRACK_TAG_EXACT --tag --exact) endif() file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"") @@ -198,11 +199,7 @@ if(NOT WIN32) set(SDK_WINE_NO_WRAPPER FALSE CACHE BOOL "disable Wine wrapper -- use Wine only for X-Plane") endif() -# ---- - -# misc - -# ---- +# --- tarball string(TIMESTAMP filename-date "%Y%m%d") set(filename-ostype ${CMAKE_SYSTEM_NAME}) @@ -213,15 +210,26 @@ endif() string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}") string(REPLACE "/" "-" filename-branch "${filename-branch_1}") set(filename_0 "${OPENTRACK_COMMIT}") -string(TIMESTAMP filename_1 "%Y%m%d%H%M%S") -set(filename "${CMAKE_BINARY_DIR}/${filename_0}-${filename_1}.zip") +set(filename_1) +if(is_exact_p EQUAL 0) + string(TIMESTAMP filename_1 "-%Y%m%d%H%M%S") +endif() +set(filename "${CMAKE_BINARY_DIR}/${filename_0}${filename_1}.zip") add_custom_target(tarball-real) add_custom_target(tarball-real2) add_custom_command(TARGET tarball-real COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/tarball.cmake) -add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}" "${CMAKE_BINARY_DIR}") +set(is-exact-p 0) +if (OPENTRACK_TAG_EXACT STREQUAL OPENTRACK_COMMIT) + set(is-exact-p 1) +endif() +add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh + "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" + "${filename}" "${CMAKE_BINARY_DIR}" ${is-exact-p}) add_custom_target(tarball DEPENDS tarball-real) +# -- end tarball + opentrack_module(opentrack-api opentrack) opentrack_qt(opentrack-api) add_library(opentrack-api STATIC ${opentrack-api-all}) -- cgit v1.2.3 From bb43e044972f541ae6d39e1718a6a2a08102f78b Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 20 Oct 2015 06:32:06 +0200 Subject: cmake: timestamp logic simplify/fix --- CMakeLists.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 564fc736..0ee925b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,7 +211,7 @@ string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}") string(REPLACE "/" "-" filename-branch "${filename-branch_1}") set(filename_0 "${OPENTRACK_COMMIT}") set(filename_1) -if(is_exact_p EQUAL 0) +if (NOT OPENTRACK_TAG_EXACT STREQUAL OPENTRACK_COMMIT) string(TIMESTAMP filename_1 "-%Y%m%d%H%M%S") endif() set(filename "${CMAKE_BINARY_DIR}/${filename_0}${filename_1}.zip") @@ -219,13 +219,10 @@ set(filename "${CMAKE_BINARY_DIR}/${filename_0}${filename_1}.zip") add_custom_target(tarball-real) add_custom_target(tarball-real2) add_custom_command(TARGET tarball-real COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/tarball.cmake) -set(is-exact-p 0) -if (OPENTRACK_TAG_EXACT STREQUAL OPENTRACK_COMMIT) - set(is-exact-p 1) -endif() + add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" - "${filename}" "${CMAKE_BINARY_DIR}" ${is-exact-p}) + "${filename}" "${CMAKE_BINARY_DIR}") add_custom_target(tarball DEPENDS tarball-real) # -- end tarball -- cgit v1.2.3 From d55a4b37629c5826adcf7cc3989913a10e9719ab Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 20 Oct 2015 08:01:50 +0200 Subject: cmake: add osx policy to make it shutup --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ee925b0..36ffbfb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,9 @@ endif() if(POLICY CMP0028) cmake_policy(SET CMP0028 OLD) endif() +if(POLICY CMP0042) + cmake_policy(SET CMP0042 NEW) +endif() include(CMakeParseArguments) -- cgit v1.2.3