mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Replace GNC_CONFIGURE(2) with configure_file
This commit is contained in:
@@ -30,7 +30,6 @@ EXTRA_DIST = \
|
||||
cmake_modules/MakeDistFiles.cmake \
|
||||
cmake_modules/MacroAddSourceFileCompileFlags.cmake \
|
||||
cmake_modules/MakeDistCheck.cmake \
|
||||
cmake_modules/GncConfigure.cmake \
|
||||
cmake_modules/GncAddSchemeTargets.cmake \
|
||||
cmake_modules/GncAddGSchemaTargets.cmake \
|
||||
cmake_modules/GncFindPkgConfig.cmake \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
SET(cmake_FILES GncAddGSchemaTargets.cmake GncAddSchemeTargets.cmake GncAddSwigCommand.cmake GncAddTest.cmake
|
||||
GncConfigure.cmake GncFindPkgConfig.cmake MacroAddSourceFileCompileFlags.cmake MacroAppendForeach.cmake
|
||||
GncFindPkgConfig.cmake MacroAddSourceFileCompileFlags.cmake MacroAppendForeach.cmake
|
||||
MakeDist.cmake MakeDistFiles.cmake MakeDistCheck.cmake)
|
||||
|
||||
SET_DIST_LIST(cmake_modules_DIST CMakeLists.txt COPYING-CMAKE-SCRIPTS.txt ${cmake_FILES})
|
||||
SET_DIST_LIST(cmake_modules_DIST CMakeLists.txt COPYING-CMAKE-SCRIPTS.txt ${cmake_FILES})
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
|
||||
macro(add_gschema_targets _gschema_INPUTS)
|
||||
SET(_gschema_OUTPUTS "")
|
||||
SET(_gschema_VALIDS "")
|
||||
SET(_gschema_BUILDS "")
|
||||
set(local_depends ${gschema_depends})
|
||||
# FIXME: I have no idea of I'm using the right options here for intltool-merge for Windows.
|
||||
SET(INITTOOL_OPTIONS "--no-translations")
|
||||
IF(WIN32)
|
||||
@@ -12,27 +11,22 @@ MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
|
||||
SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
|
||||
ENDIF()
|
||||
FOREACH(file ${_gschema_INPUTS})
|
||||
GNC_CONFIGURE2(${file}-target ${file}.in.in ${file}.in)
|
||||
STRING(REPLACE ".xml" ".valid" file_no_xml ${file})
|
||||
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file})
|
||||
SET(_BUILD_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
|
||||
SET(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
|
||||
LIST(APPEND _gschema_OUTPUTS ${_OUTPUT_FILE})
|
||||
LIST(APPEND _gschema_VALIDS ${_VALID_FILE})
|
||||
LIST(APPEND _gschema_BUILDS ${_BUILD_FILE})
|
||||
configure_file(${file}.in.in ${file}.in @ONLY)
|
||||
|
||||
set(_OUTPUT_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${_OUTPUT_FILE}
|
||||
COMMAND ${CMAKE_COMMAND_TMP}
|
||||
LC_ALL=C
|
||||
${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u ${INITTOOL_OPTIONS} ${CMAKE_CURRENT_BINARY_DIR}/${file}.in ${CMAKE_CURRENT_BINARY_DIR}/${file}
|
||||
${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u ${INITTOOL_OPTIONS} ${CMAKE_CURRENT_BINARY_DIR}/${file}.in ${_OUTPUT_FILE}
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${file}.in
|
||||
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in.in
|
||||
)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${_BUILD_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_OUTPUT_FILE} ${_BUILD_FILE}
|
||||
DEPENDS ${_OUTPUT_FILE}
|
||||
)
|
||||
list(APPEND _gschema_OUTPUTS ${_OUTPUT_FILE})
|
||||
|
||||
string(REPLACE ".xml" ".valid" file_no_xml ${file})
|
||||
set(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
|
||||
list(APPEND _gschema_VALIDS ${_VALID_FILE})
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${_VALID_FILE}
|
||||
COMMAND ${CMAKE_COMMAND_TMP}
|
||||
@@ -40,10 +34,18 @@ MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${_VALID_FILE}
|
||||
DEPENDS ${_OUTPUT_FILE}
|
||||
)
|
||||
add_custom_target(${file_no_xml}-target DEPENDS ${_VALID_FILE})
|
||||
|
||||
# Add both a target and a file level dependency for the valid target/file
|
||||
# to the gschemas.compiled target (local_depends will be propagated to that target)
|
||||
# The target level one is to ensure a link between two targets in different directories (required for the make build chain)
|
||||
# The file level one is to ensure gschemas.compiled will be rebuilt if any of the
|
||||
# dependencies changes.
|
||||
list(APPEND local_depends ${file_no_xml}-target ${_VALID_FILE})
|
||||
ENDFOREACH(file)
|
||||
|
||||
ADD_CUSTOM_TARGET(${_TARGET} DEPENDS ${_gschema_OUTPUTS} ${_gschema_VALIDS} ${_gschema_BUILDS})
|
||||
set(gschema_depends ${local_depends} CACHE INTERNAL "gschemas.compiled dependencies")
|
||||
|
||||
INSTALL(FILES ${_gschema_OUTPUTS} DESTINATION share/glib-2.0/schemas)
|
||||
|
||||
ENDMACRO()
|
||||
endmacro()
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
|
||||
MACRO (GNC_CONFIGURE _INPUT _OUTPUT)
|
||||
FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
|
||||
SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
|
||||
STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
|
||||
STRING(CONFIGURE "${_TMP2}" FILE_CONTENTS @ONLY)
|
||||
SET(_OUTPUT_FILE ${_OUTPUT})
|
||||
IF (NOT IS_ABSOLUTE ${_OUTPUT})
|
||||
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
|
||||
ENDIF()
|
||||
FILE(WRITE ${_OUTPUT_FILE} "${FILE_CONTENTS}")
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
MACRO (GNC_CONFIGURE2 _TARGET _INPUT _OUTPUT)
|
||||
|
||||
SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
|
||||
FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
|
||||
SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
|
||||
STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
|
||||
FILE(WRITE ${_TMPDIR}/${_INPUT}.tmp "${_TMP2}")
|
||||
|
||||
FILE(WRITE ${_TMPDIR}/${_INPUT}.cmake
|
||||
"SET(PERL ${PERL_EXECUTABLE})
|
||||
SET(VERSION ${VERSION})
|
||||
SET(GNC_HELPDIR \"${GNC_HELPDIR}\")
|
||||
SET(GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
|
||||
CONFIGURE_FILE(\${SRC} \${DST} @ONLY)")
|
||||
|
||||
SET(_OUTPUT_FILE ${_OUTPUT})
|
||||
IF (NOT IS_ABSOLUTE ${_OUTPUT})
|
||||
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
|
||||
ENDIF()
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${_OUTPUT_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -D SRC=${_TMPDIR}/${_INPUT}.tmp
|
||||
-D DST=${_OUTPUT_FILE}
|
||||
-P ${_TMPDIR}/${_INPUT}.cmake
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT}
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(${_TARGET} DEPENDS ${_OUTPUT_FILE})
|
||||
ENDMACRO()
|
||||
Reference in New Issue
Block a user