mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-21 16:38:06 -06:00
Bug 797691 - Tip of the day is not rebuilt when the source file changes
Changes to tip_of_the_day.list.c will now properly trigger a rebuild. Plus a few minor assorted fixes and changes to generating the man pages - only generate the final files in share/gnucash, not in the build directory - gnucash-cli.1 was not installed, gnucash.1 twice
This commit is contained in:
parent
fbabcd58e0
commit
5bf3bfc6b6
@ -10,5 +10,5 @@ endif()
|
|||||||
|
|
||||||
set_dist_list(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in
|
set_dist_list(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in
|
||||||
configure-appdata.cmake configure-gnucash-desktop.cmake configure-manpage.cmake
|
configure-appdata.cmake configure-gnucash-desktop.cmake configure-manpage.cmake
|
||||||
git2version-info.cmake version-info2env.cmake
|
configure-totd.cmake git2version-info.cmake version-info2env.cmake
|
||||||
)
|
)
|
||||||
|
@ -12,5 +12,4 @@
|
|||||||
|
|
||||||
include (${SRC_DIR}/cmake/version-info2env.cmake)
|
include (${SRC_DIR}/cmake/version-info2env.cmake)
|
||||||
versioninfo2env (${VCS_INFO_FILE})
|
versioninfo2env (${VCS_INFO_FILE})
|
||||||
configure_file(${SRC} ${DST} )
|
configure_file(${SRC} ${DATADIR_BUILD}/gnucash/${DST} )
|
||||||
configure_file(${DST} ${DATADIR_BUILD}/gnucash/${DST} COPYONLY)
|
|
||||||
|
24
cmake/configure-totd.cmake
Normal file
24
cmake/configure-totd.cmake
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Command to configure the gnucash man page
|
||||||
|
# These commands are store in a separate cmake file as they have to be
|
||||||
|
# rerun depending on build conditions, not depending on cmake conditions
|
||||||
|
# (such as did the version string change or not)
|
||||||
|
#
|
||||||
|
# The following environment variables are used and should be properly set
|
||||||
|
# by the calling code:
|
||||||
|
# - SRC_DIR (source code directory containing tip_of_the_day.list.c)
|
||||||
|
# - DST_DIR (build dir to write tip_of_the_day.list to)
|
||||||
|
# - SRC (full path to tip_of_the_day.list.c)
|
||||||
|
# - DST (target filename)
|
||||||
|
# - CMAKE_C_COMPILER (path to C compiler, used to parse the input file)
|
||||||
|
file(REMOVE ${DST_DIR}/${TOTD})
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_C_COMPILER} -E -P -x c -DN_\(x\)=x -o ${TOTD}.tmp ${SRC}
|
||||||
|
)
|
||||||
|
|
||||||
|
file(STRINGS ${TOTD}.tmp TIP_OF_THE_DAY_LINES)
|
||||||
|
set(TOTD_OUTPUT "")
|
||||||
|
foreach(line ${TIP_OF_THE_DAY_LINES})
|
||||||
|
string(REGEX REPLACE "^ *\"" "" line2 "${line}")
|
||||||
|
string(REGEX REPLACE "\" *$" "" line3 "${line2}")
|
||||||
|
file(APPEND ${DST_DIR}/${TOTD} "${line3}\n")
|
||||||
|
endforeach()
|
@ -19,40 +19,35 @@ endforeach()
|
|||||||
|
|
||||||
# Generate the tip of the day file.
|
# Generate the tip of the day file.
|
||||||
|
|
||||||
execute_process(
|
set (totd "tip_of_the_day.list")
|
||||||
COMMAND ${CMAKE_C_COMPILER} -E -P -x c -DN_\(x\)=x -o ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp ${CMAKE_CURRENT_SOURCE_DIR}/tip_of_the_day.list.c
|
add_custom_command(OUTPUT ${DATADIR_BUILD}/gnucash/${totd}
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${totd}.c
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D SRC=${CMAKE_CURRENT_SOURCE_DIR}/${totd}.c
|
||||||
|
-D TOTD=${totd}
|
||||||
|
-D DST_DIR=${DATADIR_BUILD}/gnucash
|
||||||
|
-D CMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/configure-totd.cmake
|
||||||
)
|
)
|
||||||
|
add_custom_target(totd ALL DEPENDS ${DATADIR_BUILD}/gnucash/${totd})
|
||||||
|
|
||||||
file(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp TIP_OF_THE_DAY_LINES)
|
install(FILES ${DATADIR_BUILD}/gnucash/tip_of_the_day.list DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash)
|
||||||
|
|
||||||
set(TOTD_OUTPUT "")
|
# Generate manpages.
|
||||||
foreach(line ${TIP_OF_THE_DAY_LINES})
|
|
||||||
string(REGEX REPLACE "^ *\"" "" line2 "${line}")
|
|
||||||
string(REGEX REPLACE "\" *$" "" line3 "${line2}")
|
|
||||||
list(APPEND TOTD_OUTPUT "${line3}\n")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
string(CONCAT FINAL_TOTD ${TOTD_OUTPUT})
|
|
||||||
|
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash)
|
|
||||||
|
|
||||||
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
|
|
||||||
DESTINATION ${DATADIR_BUILD}/gnucash)
|
|
||||||
|
|
||||||
foreach (manpage gnucash gnucash-cli)
|
foreach (manpage gnucash gnucash-cli)
|
||||||
add_custom_command(OUTPUT ${manpage}.1
|
add_custom_command(OUTPUT ${DATADIR_BUILD}/gnucash/${manpage}.1
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${manpage}.1.in ${VCS_INFO_FILE}
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${manpage}.1.in ${VCS_INFO_FILE}
|
||||||
COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/${manpage}.1.in
|
COMMAND ${CMAKE_COMMAND}
|
||||||
-D DST=${manpage}.1
|
-D SRC=${CMAKE_CURRENT_SOURCE_DIR}/${manpage}.1.in
|
||||||
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
-D DST=${manpage}.1
|
||||||
-D DATADIR_BUILD=${DATADIR_BUILD}
|
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
||||||
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
-D DATADIR_BUILD=${DATADIR_BUILD}
|
||||||
-P ${CMAKE_SOURCE_DIR}/cmake/configure-manpage.cmake
|
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/configure-manpage.cmake
|
||||||
)
|
)
|
||||||
add_custom_target(${manpage}-manpage DEPENDS ${manpage}.1)
|
add_custom_target(${manpage}-manpage ALL DEPENDS ${DATADIR_BUILD}/gnucash/${manpage}.1)
|
||||||
dist_add_generated (${BUILDING_FROM_VCS} ${manpage}.1)
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
install(FILES ${DATADIR_BUILD}/gnucash/${manpage}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -53,8 +53,6 @@ add_executable (gnucash
|
|||||||
${gnucash_noinst_HEADERS}
|
${gnucash_noinst_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies (gnucash gnucash-manpage gnucash-cli-manpage)
|
|
||||||
|
|
||||||
target_compile_definitions(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
|
target_compile_definitions(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
|
||||||
|
|
||||||
target_link_libraries (gnucash
|
target_link_libraries (gnucash
|
||||||
|
Loading…
Reference in New Issue
Block a user