Skip to content

Commit 41ffffe

Browse files
committedMay 11, 2021
Optimize
1 parent 4a16d25 commit 41ffffe

File tree

2 files changed

+49
-41
lines changed

2 files changed

+49
-41
lines changed
 

‎CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ endif()
3333
math(EXPR QGIS_VERSION_INT "${CPACK_PACKAGE_VERSION_MAJOR}*10000+${CPACK_PACKAGE_VERSION_MINOR}*100+${CPACK_PACKAGE_VERSION_PATCH}")
3434
message(STATUS "QGIS version: ${COMPLETE_VERSION} ${RELEASE_NAME} (${QGIS_VERSION_INT})")
3535

36+
set (ENABLE_LOCAL_BUILD_SHORTCUTS FALSE CACHE BOOL "Disables some build steps which are only relevant for releases to speed up compilation time for development")
37+
3638
#############################################################
3739
if (APPLE)
3840
# QGIS custom dependencies package from qgis/QGIS-Mac-Packager

‎cmake/CreateQgsVersion.cmake

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,51 +3,57 @@
33
# qgsversion.inc for doxygen
44

55
MACRO(CREATE_QGSVERSION)
6-
IF (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
7-
FIND_PROGRAM(GITCOMMAND git PATHS c:/cygwin/bin)
8-
IF(GITCOMMAND)
9-
IF(WIN32 AND NOT CMAKE_CROSS_COMPILING)
10-
IF(USING_NINJA)
11-
SET(ARG %a)
12-
ELSE(USING_NINJA)
13-
SET(ARG %%a)
14-
ENDIF(USING_NINJA)
15-
ADD_CUSTOM_COMMAND(
16-
OUTPUT ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.inc
17-
COMMAND for /f \"usebackq tokens=1\" ${ARG} in "(`\"${GITCOMMAND}\" log -n1 --oneline`)" do echo \#define QGSVERSION \"${ARG}\" >${CMAKE_BINARY_DIR}/qgsversion.h.temp
18-
COMMAND for /f \"usebackq tokens=1\" ${ARG} in "(`\"${GITCOMMAND}\" log -n1 --oneline`)" do echo PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} \(${ARG}\)\" >${CMAKE_BINARY_DIR}/qgsversion.inc
19-
COMMAND ${CMAKE_COMMAND} -DSRC=${CMAKE_BINARY_DIR}/qgsversion.h.temp -DDST=${CMAKE_BINARY_DIR}/qgsversion.h.out -P ${CMAKE_SOURCE_DIR}/cmake/CopyIfChanged.cmake
20-
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/.git/index
21-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
22-
)
23-
ELSE(WIN32 AND NOT CMAKE_CROSS_COMPILING)
24-
ADD_CUSTOM_COMMAND(
25-
OUTPUT ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.inc
26-
COMMAND ${GITCOMMAND} log -n1 --pretty=\#define\\ QGSVERSION\\ \\"%h\\" >${CMAKE_BINARY_DIR}/qgsversion.h.temp
27-
COMMAND ${GITCOMMAND} log -n1 --pretty='PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} \(%h\)\"' >${CMAKE_BINARY_DIR}/qgsversion.inc
28-
COMMAND ${GITCOMMAND} config remote.$$\(${GITCOMMAND} config branch.$$\(${GITCOMMAND} name-rev --name-only HEAD\).remote\).url | sed -e 's/^/\#define QGS_GIT_REMOTE_URL \"/' -e 's/$$/\"/' >>${CMAKE_BINARY_DIR}/qgsversion.h.temp
29-
COMMAND ${CMAKE_COMMAND} -DSRC=${CMAKE_BINARY_DIR}/qgsversion.h.temp -DDST=${CMAKE_BINARY_DIR}/qgsversion.h.out -P ${CMAKE_SOURCE_DIR}/cmake/CopyIfChanged.cmake
30-
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/.git/index
31-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
32-
)
33-
ENDIF(WIN32 AND NOT CMAKE_CROSS_COMPILING)
34-
ELSE(GITCOMMAND)
35-
MESSAGE(STATUS "git marker, but no git found - version will be unknown")
6+
IF (${ENABLE_LOCAL_BUILD_SHORTCUTS})
7+
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.h.out "#define QGSVERSION \"dev\"\n")
8+
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.inc "PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} (dev)\"\n")
9+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.h)
10+
ELSE (${ENABLE_LOCAL_BUILD_SHORTCUTS})
11+
IF (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
12+
FIND_PROGRAM(GITCOMMAND git PATHS c:/cygwin/bin)
13+
IF(GITCOMMAND)
14+
IF(WIN32 AND NOT CMAKE_CROSS_COMPILING)
15+
IF(USING_NINJA)
16+
SET(ARG %a)
17+
ELSE(USING_NINJA)
18+
SET(ARG %%a)
19+
ENDIF(USING_NINJA)
20+
ADD_CUSTOM_COMMAND(
21+
OUTPUT ${CMAKE_BINARY_DIR}/qgsversion.h ${CMAKE_BINARY_DIR}/qgsversion.inc
22+
COMMAND for /f \"usebackq tokens=1\" ${ARG} in "(`\"${GITCOMMAND}\" log -n1 --oneline`)" do echo \#define QGSVERSION \"${ARG}\" >${CMAKE_BINARY_DIR}/qgsversion.h.temp
23+
COMMAND for /f \"usebackq tokens=1\" ${ARG} in "(`\"${GITCOMMAND}\" log -n1 --oneline`)" do echo PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} \(${ARG}\)\" >${CMAKE_BINARY_DIR}/qgsversion.inc
24+
COMMAND ${CMAKE_COMMAND} -DSRC=${CMAKE_BINARY_DIR}/qgsversion.h.temp -DDST=${CMAKE_BINARY_DIR}/qgsversion.h -P ${CMAKE_SOURCE_DIR}/cmake/CopyIfChanged.cmake
25+
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/.git/index
26+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
27+
)
28+
ELSE(WIN32 AND NOT CMAKE_CROSS_COMPILING)
29+
ADD_CUSTOM_COMMAND(
30+
OUTPUT ${CMAKE_BINARY_DIR}/qgsversion.h ${CMAKE_BINARY_DIR}/qgsversion.inc
31+
COMMAND ${GITCOMMAND} log -n1 --pretty=\#define\\ QGSVERSION\\ \\"%h\\" >${CMAKE_BINARY_DIR}/qgsversion.h.temp
32+
COMMAND ${GITCOMMAND} log -n1 --pretty='PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} \(%h\)\"' >${CMAKE_BINARY_DIR}/qgsversion.inc
33+
COMMAND ${GITCOMMAND} config remote.$$\(${GITCOMMAND} config branch.$$\(${GITCOMMAND} name-rev --name-only HEAD\).remote\).url | sed -e 's/^/\#define QGS_GIT_REMOTE_URL \"/' -e 's/$$/\"/' >>${CMAKE_BINARY_DIR}/qgsversion.h.temp
34+
COMMAND ${CMAKE_COMMAND} -DSRC=${CMAKE_BINARY_DIR}/qgsversion.h.temp -DDST=${CMAKE_BINARY_DIR}/qgsversion.h -P ${CMAKE_SOURCE_DIR}/cmake/CopyIfChanged.cmake
35+
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/.git/index
36+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
37+
)
38+
ENDIF(WIN32 AND NOT CMAKE_CROSS_COMPILING)
39+
ELSE(GITCOMMAND)
40+
MESSAGE(STATUS "git marker, but no git found - version will be unknown")
41+
IF(NOT SHA)
42+
SET(SHA "unknown")
43+
ENDIF(NOT SHA)
44+
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.h.out "#define QGSVERSION \"${SHA}\"\n")
45+
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.inc "PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} (${SHA})\"\n")
46+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.h)
47+
ENDIF(GITCOMMAND)
48+
ELSE (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
3649
IF(NOT SHA)
37-
SET(SHA "unknown")
50+
SET(SHA "exported")
3851
ENDIF(NOT SHA)
3952
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.h.out "#define QGSVERSION \"${SHA}\"\n")
4053
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.inc "PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} (${SHA})\"\n")
41-
ENDIF(GITCOMMAND)
42-
ELSE (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
43-
IF(NOT SHA)
44-
SET(SHA "exported")
45-
ENDIF(NOT SHA)
46-
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.h.out "#define QGSVERSION \"${SHA}\"\n")
47-
FILE(WRITE ${CMAKE_BINARY_DIR}/qgsversion.inc "PROJECT_NUMBER = \"${COMPLETE_VERSION}-${RELEASE_NAME} (${SHA})\"\n")
48-
ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
49-
50-
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.h)
54+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/qgsversion.h.out ${CMAKE_BINARY_DIR}/qgsversion.h)
55+
ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
56+
ENDIF (${ENABLE_LOCAL_BUILD_SHORTCUTS})
5157

5258
ADD_CUSTOM_TARGET(version ALL DEPENDS ${CMAKE_BINARY_DIR}/qgsversion.h)
5359
ENDMACRO(CREATE_QGSVERSION)

0 commit comments

Comments
 (0)
Please sign in to comment.