Improve handling of generated distributable files

- the two dist_add_... macros now both take a list of file names
as argument so more files can be added at once to the dist tarball.
- dist_add_generated now creates the right target by itself. There's
  no need to pass one any more
- make the swig generated *.py module files explicit output files
- change a couple of custom_targets into custom_commands. The only
  reason they were defined as targets was to ensure they got built
  before the dist tarball. This is now properly handled by the
  dist_add_... macros.
- correctly handle dependency on swig-runtime.h (using OBJECT_DEPENDS
  was not the way to do it according to that property's help page)
This commit is contained in:
Geert Janssens
2018-01-29 12:19:47 +01:00
parent 3dff4e5211
commit 4317d8a8f6
14 changed files with 104 additions and 78 deletions

View File

@@ -38,19 +38,18 @@ IF (BUILDING_FROM_VCS)
)
SET (SWIG_GNUCASH_CORE_C ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core.c)
SET (SWIG_GNUCASH_CORE_C_PY ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py)
SET (SWIG_GNUCASH_CORE_PY ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py)
GNC_ADD_SWIG_PYTHON_COMMAND (swig-gnucash-core ${SWIG_GNUCASH_CORE_C}
${SWIG_GNUCASH_CORE_PY}
${SWIG_FILES}
${CMAKE_SOURCE_DIR}/common/base-typemaps.i
${CMAKE_SOURCE_DIR}/libgnucash/engine/engine-common.i
${GNUCASH_CORE_C_INCLUDES}
)
add_custom_target(swig-gnucash-core-c-py DEPENDS swig-gnucash-core)
dist_add_generated(swig-gnucash-core-c-py gnucash_core_c.py)
ELSE()
SET (SWIG_GNUCASH_CORE_C gnucash_core.c)
SET (SWIG_GNUCASH_CORE_C_PY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash_core_c.py)
SET (SWIG_GNUCASH_CORE_PY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash_core_c.py)
ENDIF()
IF(WITH_PYTHON)
@@ -87,14 +86,14 @@ IF(WITH_PYTHON)
LIBRARY DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
ARCHIVE DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
)
INSTALL(FILES ${PYEXEC_FILES} ${SWIG_GNUCASH_CORE_C_PY}
INSTALL(FILES ${PYEXEC_FILES} ${SWIG_GNUCASH_CORE_PY}
DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
)
FILE(COPY ${PYEXEC_FILES} DESTINATION ${PYTHON_SYSCONFIG_BUILD}/gnucash)
ADD_CUSTOM_TARGET(gnucash-core-c-py ALL
COMMAND ${CMAKE_COMMAND} -E copy ${SWIG_GNUCASH_CORE_C_PY} ${PYTHON_SYSCONFIG_BUILD}/gnucash
COMMAND ${CMAKE_COMMAND} -E copy ${SWIG_GNUCASH_CORE_PY} ${PYTHON_SYSCONFIG_BUILD}/gnucash
DEPENDS ${SWIG_GNUCASH_CORE_C})
ADD_CUSTOM_TARGET(gnucash-core-c-build ALL