Improve Version.h handling
Always check for version changes when building. Version.h is only updated if actually changed.
This commit is contained in:
@@ -288,6 +288,8 @@ add_library(FreeCADApp SHARED ${FreeCADApp_SRCS})
|
||||
|
||||
target_link_libraries(FreeCADApp ${FreeCADApp_LIBS})
|
||||
|
||||
add_dependencies(FreeCADApp fc_version)
|
||||
|
||||
SET_BIN_DIR(FreeCADApp FreeCADApp)
|
||||
|
||||
if(WIN32)
|
||||
|
||||
@@ -6,25 +6,26 @@ set(PACKAGE_WCURL "$WCURL$")
|
||||
# If the sources don't include a Version.h then create one
|
||||
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Version.h)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Version.h.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Version.h.in
|
||||
)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/SubWCRev.py
|
||||
--srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
fc_copy_file_if_different(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Version.h.out"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Version.h"
|
||||
)
|
||||
|
||||
# as fallback if Version.h isn't created for any reason
|
||||
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Version.h)
|
||||
set(PACKAGE_WCREF ${PACKAGE_VERSION_PATCH})
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Version.h.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Version.h
|
||||
)
|
||||
endif (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Version.h)
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Version.h.in)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Version.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/Version.h.out
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Version.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS version_check)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT version_check
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/SubWCRev.py
|
||||
--srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
ADD_CUSTOM_TARGET(fc_version DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Version.h)
|
||||
|
||||
else (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Version.h)
|
||||
|
||||
ADD_CUSTOM_TARGET(fc_version DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Version.h)
|
||||
|
||||
endif (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Version.h)
|
||||
|
||||
Reference in New Issue
Block a user