cmake add_custom_command(BYPRODUCTS) examples

catchorg/Catch2 extras/Catch.cmake :212

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  BYPRODUCTS "${ctest_tests_file}"
  COMMAND "${CMAKE_COMMAND}"
          -D "TEST_TARGET=${TARGET}"
          -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
          -D "TEST_EXECUTOR=${crosscompiling_emulator}"
          -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
          -D "TEST_SPEC=${_TEST_SPEC}"
          -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
          -D "TEST_PROPERTIES=${_PROPERTIES}"
          -D "TEST_PREFIX=${_TEST_PREFIX}"
          -D "TEST_SUFFIX=${_TEST_SUFFIX}"
          -D "TEST_LIST=${_TEST_LIST}"
          -D "TEST_REPORTER=${_REPORTER}"
          -D "TEST_OUTPUT_DIR=${_OUTPUT_DIR}"
          -D "TEST_OUTPUT_PREFIX=${_OUTPUT_PREFIX}"
          -D "TEST_OUTPUT_SUFFIX=${_OUTPUT_SUFFIX}"
          -D "TEST_DL_PATHS=${_DL_PATHS}"
          -D "TEST_DL_FRAMEWORK_PATHS=${_DL_FRAMEWORK_PATHS}"
          -D "CTEST_FILE=${ctest_tests_file}"
          -D "ADD_TAGS_AS_LABELS=${_ADD_TAGS_AS_LABELS}"
          -P "${_CATCH_DISCOVER_TESTS_SCRIPT}"
  VERBATIM
)

catchorg/Catch2 extras/CatchShardTests.cmake :51

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  BYPRODUCTS "${ctest_tests_file}"
  COMMAND "${CMAKE_COMMAND}"
          -D "TARGET_NAME=${TARGET}"
          -D "TEST_BINARY=$<TARGET_FILE:${TARGET}>"
          -D "CTEST_FILE=${ctest_tests_file}"
          -D "SHARD_COUNT=${_SHARD_COUNT}"
          -D "REPORTER_SPEC=${_REPORTER}"
          -D "TEST_SPEC=${_TEST_SPEC}"
          -P "${shard_impl_script_file}"
  VERBATIM
)

mosra/corrade modules/UseCorrade.cmake :769

add_custom_command(TARGET ${plugin_name} POST_BUILD
    # This would be nice to Ninja, but BYPRODUCTS don't support generator
    # expressions right now (last checked: CMake 3.16)
    #BYPRODUCTS $<TARGET_FILE_DIR:${plugin_name}>/${plugin_name}${metadata_file_suffix}
    COMMAND ${CMAKE_COMMAND} -E copy ${metadata_file} $<TARGET_FILE_DIR:${plugin_name}>/${plugin_name}${metadata_file_suffix}
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

cpputest/cpputest cmake/Modules/CppUTest.cmake :79

add_custom_command(
    TARGET ${target} POST_BUILD
    BYPRODUCTS "${CTEST_GENERATED_FILE}"
    COMMAND
        "${CMAKE_COMMAND}"
        -D "TESTS_DETAILED:BOOL=${_DETAILED}"
        -D "EXECUTABLE=$<TARGET_FILE:${target}>"
        -D "EMULATOR=${emulator}"
        -D "ARGS=${_EXTRA_ARGS}"
        -D "CTEST_FILE=${CTEST_GENERATED_FILE}"
        -P "${_CPPUTEST_DISCOVERY_SCRIPT}"
    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
    VERBATIM
)

doctest/doctest scripts/cmake/doctest.cmake :135

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  BYPRODUCTS "${ctest_tests_file}"
  COMMAND "${CMAKE_COMMAND}"
          -D "TEST_TARGET=${TARGET}"
          -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
          -D "TEST_EXECUTOR=${crosscompiling_emulator}"
          -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
          -D "TEST_SPEC=${_TEST_SPEC}"
          -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
          -D "TEST_PROPERTIES=${_PROPERTIES}"
          -D "TEST_ADD_LABELS=${_ADD_LABELS}"
          -D "TEST_PREFIX=${_TEST_PREFIX}"
          -D "TEST_SUFFIX=${_TEST_SUFFIX}"
          -D "TEST_LIST=${_TEST_LIST}"
          -D "TEST_JUNIT_OUTPUT_DIR=${_JUNIT_OUTPUT_DIR}"
          -D "CTEST_FILE=${ctest_tests_file}"
          -P "${_DOCTEST_DISCOVER_TESTS_SCRIPT}"
  VERBATIM
)

fltk/fltk CMake/fl_create_example.cmake :151

add_custom_command(
  TARGET ${TARGET_NAME} POST_BUILD
  COMMAND cp ${FLTK_SOURCE_DIR}/CMake/macOS-bundle-wrapper.in ${WRAPPER}
  COMMAND chmod u+x,g+x,o+x ${WRAPPER}
  BYPRODUCTS ${WRAPPER}
  # COMMENT "Creating macOS bundle wrapper script ${WRAPPER}"
  VERBATIM
)

fltk/fltk documentation/CMakeLists.txt :120

add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/convert_doxyfile
          ${DOXYGEN_EXECUTABLE}
          ${DOXYFILE}.in
          ${DOXYFILE}
          ${LOGFILE}
  BYPRODUCTS ${LOGFILE}
  COMMENT "Converting ${DOXYFILE} to doxygen version ${DOXYGEN_VERSION_SHORT}" VERBATIM
)

fltk/fltk documentation/CMakeLists.txt :175

add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/convert_doxyfile
          ${DOXYGEN_EXECUTABLE}
          ${DOXYFILE}.in
          ${DOXYFILE}
          ${LOGFILE}
  BYPRODUCTS ${LOGFILE}
  COMMENT "Converting ${DOXYFILE} to doxygen version ${DOXYGEN_VERSION_SHORT}" VERBATIM
)

fltk/fltk fltk-options/CMakeLists.txt :69

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  COMMAND cp ${FLTK_SOURCE_DIR}/CMake/macOS-bundle-wrapper.in ${WRAPPER}
  COMMAND chmod u+x,g+x,o+x ${WRAPPER}
  BYPRODUCTS ${WRAPPER}
  VERBATIM
)

fltk/fltk fluid/CMakeLists.txt :77

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  COMMAND cp ${FLTK_SOURCE_DIR}/CMake/macOS-bundle-wrapper.in ${WRAPPER}
  COMMAND chmod u+x,g+x,o+x ${WRAPPER}
  BYPRODUCTS ${WRAPPER}
  VERBATIM
)

fltk/fltk fluid/documentation/CMakeLists.txt :100

add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/convert_doxyfile
          ${DOXYGEN_EXECUTABLE}
          ${DOXYFILE}.in
          ${DOXYFILE}
          ${LOGFILE}
  BYPRODUCTS ${LOGFILE}
  COMMENT "Converting ${DOXYFILE} to doxygen version ${DOXYGEN_VERSION_SHORT}" VERBATIM
)

fltk/fltk fluid/documentation/CMakeLists.txt :154

add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/convert_doxyfile
          ${DOXYGEN_EXECUTABLE}
          ${DOXYFILE}.in
          ${DOXYFILE}
          ${LOGFILE}
  BYPRODUCTS ${LOGFILE}
  COMMENT "Converting ${DOXYFILE} to doxygen version ${DOXYGEN_VERSION_SHORT}" VERBATIM
)

facebook/folly build/fbcode_builder/CMake/FBPythonBinary.cmake :302

add_custom_command(
  TARGET "${TARGET}.GEN_PY_EXE" POST_BUILD
  BYPRODUCTS "${ctest_tests_file}"
  COMMAND
    "${CMAKE_COMMAND}"
    -D "TEST_TARGET=${TARGET}"
    -D "TEST_INTERPRETER=${Python3_EXECUTABLE}"
    -D "TEST_ENV=${ARG_ENV}"
    -D "TEST_EXECUTABLE=$<TARGET_PROPERTY:${TARGET}.GEN_PY_EXE,EXECUTABLE>"
    -D "TEST_WORKING_DIR=${ARG_WORKING_DIRECTORY}"
    -D "TEST_LIST=${ARG_TEST_LIST}"
    -D "TEST_PREFIX=${TARGET}::"
    -D "TEST_PROPERTIES=${ARG_PROPERTIES}"
    -D "CTEST_FILE=${ctest_tests_file}"
    -P "${FB_PY_TEST_DISCOVER_SCRIPT}"
  VERBATIM
)

facebook/folly folly/CMakeLists.txt :80

add_custom_command(TARGET folly_python_bindings POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E env
    "CFLAGS=${CMAKE_C_FLAGS}"
    "CXXFLAGS=${CMAKE_CXX_FLAGS}"
    "CC=${CMAKE_C_COMPILER}"
    "CXX=${CMAKE_CXX_COMPILER}"
    python3 ${CMAKE_CURRENT_SOURCE_DIR}/python/setup.py
    build_ext -f ${incs} ${libs}
  BYPRODUCTS
    ${_cybld}/folly/executor_api.h
    ${_cybld}/folly/iobuf_api.h
  WORKING_DIRECTORY ${_cybld}
)

FreeCAD/FreeCAD src/Build/CMakeLists.txt :12

add_custom_command(
    OUTPUT version_file
    BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/Version.h
    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/SubWCRev.py
        --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR}
    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 ${CMAKE_CURRENT_BINARY_DIR}/Version.h.in)

sciapp/gr CMakeLists.txt :1229

add_custom_command(
  TARGET GKSTerm
  POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/lib/gks/quartz/English.lproj
          ${CMAKE_CURRENT_BINARY_DIR}/GKSTerm.app/Contents/Resources/English.lproj
  BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/GKSTerm.app/Contents/Resources/English.lproj
)

sciapp/gr CMakeLists.txt :1792

add_custom_command(
  TARGET libGR
  PRE_LINK
  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/lib/gks/fonts/${FONT}"
          "${CMAKE_CURRENT_BINARY_DIR}/fonts/${FONT}"
  BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/fonts/${FONT}"
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :136

add_custom_command (TARGET H5match_types POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5match_types>
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :143

add_custom_command (TARGET H5match_types POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/static/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/static/H5fortran_types.F90
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/static/H5f90i_gen.h
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90 ${HDF5_F90_BINARY_DIR}/static/H5fortran_types.F90
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}/static
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :155

add_custom_command (TARGET H5match_types POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/shared/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/shared/H5fortran_types.F90
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/shared/H5f90i_gen.h
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90 ${HDF5_F90_BINARY_DIR}/shared/H5fortran_types.F90
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}/shared
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :286

add_custom_command (TARGET H5_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5_gen.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5_buildiface>
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
    COMMENT "Generating the H5_gen.F90 file"
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :293

add_custom_command (TARGET H5_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/static/H5_gen.F90
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5_gen.F90 ${HDF5_F90_BINARY_DIR}/static/H5_gen.F90
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}/static
    COMMENT "Generating the H5_gen.F90 file"
)

HDFGroup/hdf5 fortran/src/CMakeLists.txt :307

add_custom_command (TARGET H5_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_F90_BINARY_DIR}/shared/H5_gen.F90
    COMMAND    ${CMAKE_COMMAND}
    ARGS       -E copy_if_different ${HDF5_F90_BINARY_DIR}/H5_gen.F90 ${HDF5_F90_BINARY_DIR}/shared/H5_gen.F90
    WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}/shared
    COMMENT "Generating the H5_gen.F90 shared file"
)

HDFGroup/hdf5 fortran/test/CMakeLists.txt :94

add_custom_command (TARGET H5_test_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_FORTRAN_TESTS_BINARY_DIR}/static/tf_gen.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5_test_buildiface>
    WORKING_DIRECTORY ${HDF5_FORTRAN_TESTS_BINARY_DIR}/static
    COMMENT "Generating the tf_gen.F90 static file"
)

HDFGroup/hdf5 fortran/test/CMakeLists.txt :105

add_custom_command (TARGET H5_test_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_FORTRAN_TESTS_BINARY_DIR}/shared/tf_gen.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5_test_buildiface>
    WORKING_DIRECTORY ${HDF5_FORTRAN_TESTS_BINARY_DIR}/shared
    COMMENT "Generating the tf_gen.F90 shared file"
)

HDFGroup/hdf5 hl/fortran/src/CMakeLists.txt :115

add_custom_command (TARGET H5HL_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_HL_F90_BINARY_DIR}/static/H5LTff_gen.F90 ${HDF5_HL_F90_BINARY_DIR}/static/H5TBff_gen.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5HL_buildiface>
    WORKING_DIRECTORY ${HDF5_HL_F90_BINARY_DIR}/static
    COMMENT "Generating the H5LTff_gen.F90, H5TBff_gen.F90 files"
)

HDFGroup/hdf5 hl/fortran/src/CMakeLists.txt :131

add_custom_command (TARGET H5HL_buildiface POST_BUILD
    BYPRODUCTS ${HDF5_HL_F90_BINARY_DIR}/shared/H5LTff_gen.F90 ${HDF5_HL_F90_BINARY_DIR}/shared/H5TBff_gen.F90
    COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5HL_buildiface>
    WORKING_DIRECTORY ${HDF5_HL_F90_BINARY_DIR}/shared
    COMMENT "Generating the H5LTff_gen.F90, H5TBff_gen.F90 shared files"
)

InsightSoftwareConsortium/ITK Wrapping/macro_files/itk_end_wrap_module.cmake :142

add_custom_command(
  OUTPUT ${igenerator_outputs}
  BYPRODUCTS ${igenerator_byproducts}
  COMMAND
    ${Python3_EXECUTABLE} ${IGENERATOR} ${mdx_opts} ${swig_libs} -w1 -w3 -w51 -w52 -w53 -w54 -A protected -A private
    -p ${PYGCCXML_DIR} -g ${CASTXML_EXECUTABLE} --snake-case-file "${snake_case_config_file}" --interface-output-dir
    "${WRAPPER_MASTER_INDEX_OUTPUT_DIR}" --library-output-dir "${WRAPPER_LIBRARY_OUTPUT_DIR}" --submodule-order
    "${THIS_MODULE_SUBMODULE_ORDER}" --pyi_index_list "${ITK_PYI_INDEX_FILES}" --pyi_dir "${ITK_STUB_DIR}" --pkl_dir
    "${ITK_PKL_DIR}"
  DEPENDS ${IGENERATOR}
          ${ITK_WRAP_DOC_DOCSTRING_FILES}
          ${CastXML_OUTPUT_FILES}
          ${typedef_in_files}
          ${mdx_files}
          ${WRAPPER_SWIG_LIBRARY_FILES}
  WORKING_DIRECTORY "${WRAPPING_CONFIG_WORKING_DIR}" # Arguments to WORKING_DIRECTORY may use generator expressions
  COMMENT "Run igenerator.py for ${WRAPPER_LIBRARY_NAME}"
  VERBATIM)

KhronosGroup/KTX interface/python_binding/CMakeLists.txt :111

add_custom_command(
    TARGET pyktx
    POST_BUILD
    BYPRODUCTS
        ${SOURCE_ARCHIVE_BASENAME}.tar.gz
        ${SOURCE_ARCHIVE_BASENAME}.zip
    COMMAND
        ${CMAKE_COMMAND} -E env
            LIBKTX_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/include
            LIBKTX_LIB_DIR=${LIBKTX_LIB_DIR}
            LIBKTX_VERSION=${KTX_VERSION_NORMALIZED}
        # The build module by default builds in an isolated environment, i.e. it
        # requires a virtual env. I have not found a way via find_package to
        # ensure venv support is installed. This can be turned off with
        # `--no-isolation` but such builds have not been tested.
        ${PYTHON_EXECUTABLE} -m build --sdist --outdir ${DIST_DIR}
    COMMENT
        "Build pyktx source package"
    WORKING_DIRECTORY
        ${SOURCE_DIR}
)

KhronosGroup/KTX interface/python_binding/CMakeLists.txt :178

add_custom_command(
    TARGET pyktx.doc
    POST_BUILD
    BYPRODUCTS
        ${KTX_BUILD_DIR}/interface/python_binding/conf.py
        ${KTX_BUILD_DIR}/interface/python_binding/index.rst
        ${pyktx_py_rst}
        ${KTX_BUILD_DIR}/interface/python_binding/docs/pyktx.rst
        ${KTX_BUILD_DIR}/interface/python_binding/docs/pyktx.native.rst
        ${pyktx_egg_info}
    COMMAND
        # This appears to build binaries of the native parts in the source pyktx
        # folder. Without the binaries, autodoc can't import the modules. It
        # prints warnings and fails to include any content in the documentation
        # for the native interfaces in the HTML files it creates.
        ${CMAKE_COMMAND} -E env
            LIBKTX_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/include
            LIBKTX_LIB_DIR=${LIBKTX_LIB_DIR}
            DYLD_LIBRARY_PATH=${LIBKTX_LIB_DIR}:$ENV{DYLD_LIBRARY_PATH}
            LD_LIBRARY_PATH=${LIBKTX_LIB_DIR}:$ENV{LD_LIBRARY_PATH}
        ${PYTHON_EXECUTABLE} buildscript.py
    COMMAND
        ${CMAKE_COMMAND} -E copy
            index.rst conf.py ${KTX_BUILD_DIR}/interface/python_binding
    # Currently there are no static items to be included in the Sphinx generated
    # documentation. The infrastructure is here in case of future need. If
    # these command are removed, also remove html_static_path from conf.py.
    COMMAND
        ${CMAKE_COMMAND} -E make_directory
        ${KTX_BUILD_DIR}/interface/python_binding/_static
    COMMAND
        ${CMAKE_COMMAND} -E copy_directory
        _static ${KTX_BUILD_DIR}/interface/python_binding/_static
    COMMAND
        # Sphinx Apidoc extracts docstrings from the source files and builds .rst files
        # in the docs directory of the python_binding section of the build directory.
        # `--separate` says to put the documentation for each module on its own page.
        ${CMAKE_COMMAND} -E env
            LIBKTX_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/include
            LIBKTX_LIB_DIR=${LIBKTX_LIB_DIR}
        ${PYTHON_EXECUTABLE} -m sphinx.ext.apidoc -o ${KTX_BUILD_DIR}/interface/python_binding/docs ./pyktx --separate
    COMMAND
        # Sphinx uses autodoc to generate html files from the .rst files generated above.
        # These are expected to be in a docs subdirectory of the SOURCEDIR hence the
        # build directory appearing in SOURCEDIR. Sphinx invokes autodoc which wants to
        # import the modules hence libktx, must be built for this to fully succeed.
        #
        # Autodoc is configured by the copy of `conf.py` in the build directory (copied
        # there by one of the COMMANDs above). `conf.py` adds the python binding
        # section of the build directory to Python's `sys.path` so Autodoc can find the
        # modules. However they aren't there. The `pyktx` module is the directory
        # ${SOURCE_DIR}/pyktx and the .o files from compiling the native parts are
        # built there by buildscript.py when invoked above. ${SOURCE_DIR} appears in
        # Python's sys.path so autodoc finds them. There is nothing explicit in `conf.py`
        # to do this. It appears that Sphinx or autodoc itself adds its working directory
        # to `sys.path`.
        ${CMAKE_COMMAND} -E env
            LIBKTX_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/include
            LIBKTX_LIB_DIR=${LIBKTX_LIB_DIR}
            SPHINXBUILD=${PYTHON_PATH}\ -m\ sphinx
        make SOURCEDIR="${KTX_BUILD_DIR}/interface/python_binding" BUILDDIR="${KTX_BUILD_DIR}/interface/python_binding/docs/html/pyktx" html
    WORKING_DIRECTORY
        ${SOURCE_DIR}
)

ARMmbed/mbedtls tests/CMakeLists.txt :140

add_custom_command(
    OUTPUT
        # The output filename of generate_test_code.py is derived from the -d
        # input argument.
        test_suite_${data_name}.c
    COMMAND
        ${MBEDTLS_PYTHON_EXECUTABLE}
        ${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
        -f ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
        -d ${data_file}
        -t ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
        -p ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
        -s ${CMAKE_CURRENT_SOURCE_DIR}/suites
        --helpers-file ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
        -o .
    DEPENDS
        ${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
        ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
        ${data_file}
        ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
        ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
        ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
        ${mbedtls_target}
    BYPRODUCTS
        test_suite_${data_name}.datax
)

rui314/mold CMakeLists.txt :426

add_custom_command(
  TARGET mold POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E create_symlink mold ld
  BYPRODUCTS ld
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  VERBATIM)

opencv/opencv modules/java/jar/CMakeLists.txt :59

add_custom_command(OUTPUT "${OPENCV_DEPHELPER}/${the_module}_jar"
    BYPRODUCTS ${__byproducts}  # required for add_custom_target() by ninja
    DEPENDS ${depends}
    COMMAND ${CMAKE_COMMAND} -E touch "${OPENCV_DEPHELPER}/${the_module}_jar"
    COMMAND ${CMAKE_COMMAND}
    -D OPENCV_JAVA_DIR="${OPENCV_JAVA_DIR}/java"
    -D OUTPUT="${OPENCV_JAVA_DIR}/java_sources"
    -P "${CMAKE_CURRENT_SOURCE_DIR}/list_java_sources.cmake"
)

podofo/podofo test/common/cmake/Catch.cmake :149

add_custom_command(
  TARGET ${TARGET} POST_BUILD
  BYPRODUCTS "${ctest_tests_file}"
  COMMAND "${CMAKE_COMMAND}"
          -D "TEST_TARGET=${TARGET}"
          -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
          -D "TEST_EXECUTOR=${crosscompiling_emulator}"
          -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
          -D "TEST_SPEC=${_TEST_SPEC}"
          -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
          -D "TEST_PROPERTIES=${_PROPERTIES}"
          -D "TEST_PREFIX=${_TEST_PREFIX}"
          -D "TEST_SUFFIX=${_TEST_SUFFIX}"
          -D "TEST_LIST=${_TEST_LIST}"
          -D "TEST_REPORTER=${_REPORTER}"
          -D "TEST_OUTPUT_DIR=${_OUTPUT_DIR}"
          -D "TEST_OUTPUT_PREFIX=${_OUTPUT_PREFIX}"
          -D "TEST_OUTPUT_SUFFIX=${_OUTPUT_SUFFIX}"
          -D "CTEST_FILE=${ctest_tests_file}"
          -P "${_CATCH_DISCOVER_TESTS_SCRIPT}"
  VERBATIM
)

precice/precice cmake/CTestConfig.cmake :168

add_custom_command(
  TARGET testprecice POST_BUILD
  COMMAND "${CMAKE_COMMAND}"
  -D "TEST_EXECUTABLE=$<TARGET_FILE:testprecice>"
  -D "TEST_FILE=${ctest_tests_file}"
  -D "TEST_DIR=${PRECICE_TEST_DIR}"
  -D "PRECICE_MPI_VERSION=${PRECICE_MPI_VERSION}"
  -D "MPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE}"
  -D "MPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG}"
  -D "PRECICE_CTEST_MPI_FLAGS=${PRECICE_CTEST_MPI_FLAGS}"
  -D "MPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS}"
  -D "MPIEXEC_POSTFLAGS=${MPIEXEC_POSTFLAGS}"
  -P "${preCICE_SOURCE_DIR}/cmake/discover_tests.cmake"
  COMMENT "Generating list of tests"
  BYPRODUCTS "${preCICE_BINARY_DIR}/tests.txt"
  VERBATIM)

transmission/transmission dist/msi/UtilityFunctions.cmake :101

add_custom_command(
    OUTPUT ${LIGHT_OUTPUT}
    BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/${LIGHT_NAME}.wixpdb"
    COMMAND light ${OPTIONS} -out "${CMAKE_CURRENT_BINARY_DIR}/${LIGHT_NAME}.msi" ${LIGHT_OBJECTS}
    DEPENDS
        ${LIGHT_OBJECTS}
        ${LIGHT_EXTRA_DEPENDS})

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/CMakeLists.txt :73

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling ${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/Isorropia/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_Isorropia_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling Isorropia/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/LOCA/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_LOCA_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling LOCA/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/LOCA/Epetra/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_LOCA_Epetra_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling LOCA/Epetra/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/LOCA/Hopf/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_LOCA_Hopf_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling LOCA/Hopf/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/LOCA/Pitchfork/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_LOCA_Pitchfork_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling LOCA/Pitchfork/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/LOCA/TurningPoint/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_LOCA_TurningPoint_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling LOCA/TurningPoint/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/NOX/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_NOX_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling NOX/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/NOX/Epetra/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_NOX_Epetra_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling NOX/Epetra/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/NOX/PETSc/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_NOX_PETSc_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling NOX/PETSc/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

trilinos/Trilinos packages/PyTrilinos/src/PyTrilinos/Teuchos/CMakeLists.txt :60

ADD_CUSTOM_COMMAND(TARGET PyTrilinos_Teuchos_Pure_Python_Modules
  COMMAND ${Python3_EXECUTABLE} -c "import py_compile; py_compile.compile('${MODULE}.py', '${MODULE}.pyc')"
  COMMENT "Byte compiling Teuchos/${MODULE}.py"
  BYPRODUCTS ${MODULE}.pyc
  VERBATIM)

gdraheim/zziplib docs/CMakeLists.txt :136

add_custom_command(OUTPUT zziplib.xml
    COMMAND ${PY} ${srcdir}/zzipmakedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/lib.h --output=zziplib
    COMMAND ${MV} zziplib.docbook zziplib.xml
    DEPENDS libzzip
    BYPRODUCTS zziplib.html
    VERBATIM)

gdraheim/zziplib docs/CMakeLists.txt :143

add_custom_command(OUTPUT zzipmmapped.xml
    COMMAND ${PY} ${srcdir}/zzipmakedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/mmapped.h --output=zzipmmapped
    COMMAND ${MV} zzipmmapped.docbook zzipmmapped.xml
    DEPENDS libzzipmmapped
    BYPRODUCTS zzipmmapped.html
    VERBATIM)

gdraheim/zziplib docs/CMakeLists.txt :150

add_custom_command(OUTPUT zzipfseeko.xml
    COMMAND ${PY} ${srcdir}/zzipmakedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/fseeko.h --output=zzipfseeko
    COMMAND ${MV} zzipfseeko.docbook zzipfseeko.xml
    DEPENDS libzzipfseeko
    BYPRODUCTS zzipfseeko.html
    VERBATIM)

gdraheim/zziplib test/CMakeLists.txt :92

add_custom_command(OUTPUT test0.zip
    COMMAND ${BASH} -c "test -d tmp || mkdir tmp"
    COMMAND ${CP} ${README} tmp/README
    COMMAND ${BASH} -c "cd tmp && ${MKZIP} ../test0.zip README"
    COMMAND ${CP} test0.zip test.zip
    BYPRODUCTS test.zip
    VERBATIM)

gdraheim/zziplib zzip/CMakeLists.txt :259

add_custom_command(OUTPUT compat/zzip.h
   COMMAND ${BASH} -c "rm -rf compat; mkdir compat"
   COMMAND ${BASH} -c "echo '#ifndef ZZIP_WARNING'     > compat/zzip.h"
   COMMAND ${BASH} -c "echo '#define ZZIP_WARNING 1'   >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#ifdef __GNUC__'          >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>' >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#else'                    >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#error   do no not use <zzip.h>, update to include <zzip/lib.h>' >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#endif'                   >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#endif'                   >>compat/zzip.h"
   COMMAND ${BASH} -c "echo '#include \"zzip/lib.h\"'  >>compat/zzip.h"
   COMMAND ${BASH} -c "sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \
   compat/zzip.h >compat/zziplib.h"
   COMMAND ${BASH} -c "sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \
   compat/zzip.h >compat/zzip-io.h"
   BYPRODUCTS compat/zziplib.h compat/zzip-io.h
   VERBATIM)

gdraheim/zziplib zzip/CMakeLists.txt :282

add_custom_command(OUTPUT zziplib.pc
   COMMAND ${BASH} -c "echo 'prefix=${CMAKE_INSTALL_PREFIX}' > zziplib.pc"
   COMMAND ${BASH} -c "echo 'libdir=${libdir}' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'includedir=${includedir}' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'package=zziplib' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'suffix=${CMAKE_EXECUTABLE_SUFFIX}' >> zziplib.pc"
   COMMAND ${BASH} -c "echo '' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Name: ${PROJECT_NAME}lib' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Version: ${PROJECT_VERSION}' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Requires: zlib' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Libs: -L\${libdir} -lzzip' >> zziplib.pc"
   COMMAND ${BASH} -c "echo 'Cflags: -I\${includedir}' >> zziplib.pc"
   COMMAND ${BASH} -c "sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' zziplib.pc > zzipmmapped.pc"
   COMMAND ${BASH} -c "sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' zziplib.pc > zzipfseeko.pc"
   BYPRODUCTS zzipmmapped.pc zzipfseeko.pc
   VERBATIM)