cmake add_custom_command examples

Signatures

add_custom_command(OUTPUT output1 [output2 ...]
  COMMAND command1 [ARGS] [args1...]
  [COMMAND command2 [ARGS] [args2...] ...]
  [MAIN_DEPENDENCY depend]
  [DEPENDS [depends...]]
  [BYPRODUCTS [files...]]
  [IMPLICIT_DEPENDS <lang1> depend1
  [<lang2> depend2] ...]
  [WORKING_DIRECTORY dir]
  [COMMENT comment]
  [DEPFILE depfile]
  [JOB_POOL job_pool]
  [JOB_SERVER_AWARE <bool>]
  [VERBATIM] [APPEND] [USES_TERMINAL]
  [COMMAND_EXPAND_LISTS]
[DEPENDS_EXPLICIT_ONLY])

Examples

godlikepanos/anki-3d-engine ThirdParty/Sdl3/cmake/android/SdlAndroidFunctions.cmake :267

add_custom_command(OUTPUT "${apk_file}"
    COMMAND SdlAndroid::apksigner sign
      --ks "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
      --ks-pass pass:android --in "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" --out "${apk_file}"
    DEPENDS "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
    BYPRODUCTS "${apk_file}.idsig"
  )

prusa3d/Prusa-Firmware CMakeLists.txt :380

add_custom_command(
    TARGET ${variant_name}
    POST_BUILD
    COMMAND ${CMAKE_OBJDUMP} --prefix ${CMAKE_SOURCE_DIR} -CSd ${variant_name} > ${variant_name}.asm
    BYPRODUCTS ${variant_name}.asm ${variant_name}.map
    )

RavEngine/RavEngine deps/SDL/cmake/android/SdlAndroidFunctions.cmake :267

add_custom_command(OUTPUT "${apk_file}"
    COMMAND SdlAndroid::apksigner sign
      --ks "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
      --ks-pass pass:android --in "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" --out "${apk_file}"
    DEPENDS "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
    BYPRODUCTS "${apk_file}.idsig"
  )

alpaka-group/alpaka thirdParty/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
  )

svkaiser/Doom64EX cmake/FindVala.cmake :278

add_custom_command(
      OUTPUT "${TARGET_DIR}/${fast_vapi_path}.stamp"
      BYPRODUCTS "${TARGET_DIR}/${fast_vapi_path}"
      DEPENDS
        "${source}"
        ${VALA_VAPIS}
        ${VALAC_DEPENDS}
      COMMAND "${VALA_EXECUTABLE}"
      ARGS
        "${source}"
        --fast-vapi "${TARGET_DIR}/${fast_vapi_path}"
        ${VALAFLAGS}
      COMMAND "${CMAKE_COMMAND}" ARGS -E touch "${TARGET_DIR}/${fast_vapi_path}.stamp"
      COMMENT "Generating fast VAPI ${TARGET_DIR}/${fast_vapi_path}")

etternagame/etterna extern/curl/docs/libcurl/CMakeLists.txt :45

add_custom_command(OUTPUT "${_pdffile}"
      COMMAND groff -Tps -man "${_srcfile}" > "${_psfile}"
      COMMAND ps2pdf "${_psfile}" "${_pdffile}"
      COMMAND "${CMAKE_COMMAND}" -E remove "${_psfile}"
      DEPENDS "${_srcfile}"
      #BYPRODUCTS "${_psfile}"
      VERBATIM
    )

ezEngine/ezEngine Code/BuildSystem/CMake/CMakeUtils/ezUtilsAndroid.cmake :104

add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
		BYPRODUCTS "${APK_OUTPUT_DIR}/${TARGET_NAME}.apk" "${APK_OUTPUT_DIR}/${TARGET_NAME}.unaligned.apk"
		COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TARGET_NAME}> ${CONTENT_DIRECTORY_DST}/lib/${ANDROID_ABI}/lib${TARGET_NAME}.so
		COMMAND ${CMAKE_COMMAND} -E copy "${EZ_VULKAN_VALIDATIONLAYERS_DIR}/${ANDROID_ABI}/libVkLayer_khronos_validation.so" ${CONTENT_DIRECTORY_DST}/lib/${ANDROID_ABI}/libVkLayer_khronos_validation.so
		COMMAND pwsh -NoLogo -NoProfile -File ${EZ_ROOT}/Utilities/Android/BuildApk.ps1 -BuildToolsPath "${ANDROID_BUILD_TOOLS}" -ContentDirectory "${CONTENT_DIRECTORY_DST}" -Manifest "${CMAKE_CURRENT_BINARY_DIR}/AndroidManifest.xml" -AndroidPlatformRoot "${ANDROID_PLATFORM_ROOT}" -TargetName "${TARGET_NAME}" -OutDir "${APK_OUTPUT_DIR}" -SignKey "${CONTENT_DIRECTORY_SRC}/debug.keystore" -SignPassword "pass:android"
		USES_TERMINAL
	)

brndnmtthws/conky cmake/Catch.cmake :204

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}"
              -P "${_CATCH_DISCOVER_TESTS_SCRIPT}"
      VERBATIM
    )

infiniflow/infinity third_party/mlas/CMakeLists.txt :357

add_custom_command(
        OUTPUT ${obj_filename}
          COMMAND
              cl.exe ${PREPROCESS_ARMASM_FLAGS} /P ${asm_filename} /Fi${preprocess_filename}
          COMMAND
              armasm64.exe ${ARMASM_FLAGS} ${preprocess_filename} ${obj_filename}
        DEPENDS ${asm_filename}
        BYPRODUCTS ${preprocess_filename}
      )

BradyBrenot/huestacean tests/catch/cmake/Catch.cmake :123

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 "CTEST_FILE=${ctest_tests_file}"
            -P "${_CATCH_DISCOVER_TESTS_SCRIPT}"
    VERBATIM
  )

aseprite/aseprite src/desktop/osx/CMakeLists.txt :20

add_custom_command(
  OUTPUT ${CMAKE_BINARY_DIR}/lib/AsepriteThumbnailer.qlgenerator
  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
  COMMAND ${CMAKE_COMMAND} -E make_directory lib/AsepriteThumbnailer.qlgenerator
  COMMAND ${CMAKE_COMMAND} -E make_directory lib/AsepriteThumbnailer.qlgenerator/Contents
  COMMAND ${CMAKE_COMMAND} -E make_directory lib/AsepriteThumbnailer.qlgenerator/Contents/MacOS
  COMMAND ${CMAKE_COMMAND} -E copy
             lib/AsepriteThumbnailer.framework/Versions/A/AsepriteThumbnailer
             lib/AsepriteThumbnailer.qlgenerator/Contents/MacOS
  COMMAND ${CMAKE_COMMAND} -E copy
             lib/AsepriteThumbnailer.framework/Versions/A/Resources/Info.plist
             lib/AsepriteThumbnailer.qlgenerator/Contents
  BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/AsepriteThumbnailer.qlgenerator/Contents/MacOS/AsepriteThumbnailer
             ${CMAKE_BINARY_DIR}/lib/AsepriteThumbnailer.qlgenerator/Contents/Info.plist
  DEPENDS AsepriteThumbnailer)

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

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
    )

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})

fktn-k/fkYAML thirdparty/Catch2/contrib/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
  )

google-coral/coralmicro cmake/toolchain-arm-none-eabi-gcc.cmake :249

add_custom_command(TARGET ${ARGV0} POST_BUILD
        COMMAND ${CMAKE_OBJCOPY} -O binary ${ARGV0} ${ARGV0}.bin
        COMMAND ${CMAKE_OBJCOPY}
            -I binary
            --rename-section .data=.core1_code
            -O elf32-littlearm
            --redefine-sym _binary_${ARGV0_UNDERSCORED}_bin_start=m4_binary_start
            --redefine-sym _binary_${ARGV0_UNDERSCORED}_bin_end=m4_binary_end
            --redefine-sym _binary_${ARGV0_UNDERSCORED}_bin_size=m4_binary_size
            ${ARGV0}.bin ${ARGV0}.obj
        DEPENDS ${ARGV0}
        BYPRODUCTS ${ARGV0}.bin ${ARGV0}.obj
    )

cvet/fonline ThirdParty/SDL/cmake/android/SdlAndroidFunctions.cmake :267

add_custom_command(OUTPUT "${apk_file}"
    COMMAND SdlAndroid::apksigner sign
      --ks "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
      --ks-pass pass:android --in "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" --out "${apk_file}"
    DEPENDS "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
    BYPRODUCTS "${apk_file}.idsig"
  )

eric612/Caffe-YOLOv3-Windows cmake/WindowsCreateLinkHeader.cmake :5

add_custom_command(TARGET ${target} POST_BUILD
                       COMMAND ${CMAKE_COMMAND}
                                #-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
                                -DMSVC_VERSION=${MSVC_VERSION}
                                -DTARGET_FILE=$<TARGET_FILE:${target}>
                                #-DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}
                                #-DCMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
                                #-DCONFIGURATION=$<CONFIGURATION>
                                -DOUTPUT_FILE=${outputfile}
                                -P ${_windows_create_link_header}
                        BYPRODUCTS ${outputfile}
                      )

contour-terminal/contour src/contour/CMakeLists.txt :216

add_custom_command(
        TARGET contour POST_BUILD
        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
        COMMAND contour generate terminfo to ${terminfo_file} && ${TIC} -x -o "${terminfo_basedir}" "${terminfo_file}"
        DEPENDS "${terminfo_file}"
        COMMENT "Compiling ${terminfo_file}"
        BYPRODUCTS "${terminfo_file}"
        VERBATIM
    )

OFFTKP/felix86 external/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
  )

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)

pyside/pyside-setup sources/shiboken6/tests/minimalbinding/CMakeLists.txt :28

add_custom_command(
    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
    BYPRODUCTS ${minimal_SRC}
    COMMAND
        ${tool_wrapper}
        $<TARGET_FILE:Shiboken6::shiboken6>
        --project-file=${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt
        ${UNOPTIMIZE}
        ${GENERATOR_EXTRA_FLAGS}
    DEPENDS ${minimal_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT "Running generator for 'minimal' test binding..."
)

IntelRealSense/librealsense common/fw/CMakeLists.txt :33

add_custom_command(TARGET ${PROJECT_NAME} BYPRODUCTS ${PROJECT_NAME}.res COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_RC_FLAGS} /I . /fo "${PROJECT_NAME}.res" "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.rc")

Ravbug/UnityHubNative wxWidgets/3rdparty/catch/contrib/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
  )

glKarin/com.n0n3m4.diii4a Q3E/src/main/jni/doom3/neo/externlibs/openal-soft/CMakeLists.txt :1222

add_custom_command(OUTPUT "${OpenAL_BINARY_DIR}/version_witness.txt"
        BYPRODUCTS "${OpenAL_BINARY_DIR}/version.h"
        COMMAND ${CMAKE_COMMAND} -D GIT_EXECUTABLE=${GIT_EXECUTABLE} -D LIB_VERSION=${LIB_VERSION}
            -D LIB_VERSION_NUM=${LIB_VERSION_NUM} -D SRC=${OpenAL_SOURCE_DIR}/version.h.in
            -D DST=${OpenAL_BINARY_DIR}/version.h -P ${OpenAL_SOURCE_DIR}/version.cmake
        COMMAND ${CMAKE_COMMAND} -E touch "${OpenAL_BINARY_DIR}/version_witness.txt"
        WORKING_DIRECTORY "${OpenAL_SOURCE_DIR}"
        MAIN_DEPENDENCY "${OpenAL_SOURCE_DIR}/version.h.in"
        DEPENDS "${GIT_DIR}/index" "${OpenAL_SOURCE_DIR}/version.cmake"
        VERBATIM
    )

qt/qtwebengine cmake/Functions.cmake :317

add_custom_command(
        OUTPUT
            ${arg_OUTPUT}
            ${arg_BUILDDIR}/${arg_TARGET} # use generator expression in CMAKE 3.20
        BYPRODUCTS ${arg_BYPRODUCTS}
        COMMENT "Running ninja for ${arg_TARGET} in ${arg_BUILDDIR}"
        COMMAND Ninja::ninja
            ${ninja_flags}
            -C ${arg_BUILDDIR}
            ${arg_TARGET}
        USES_TERMINAL
        VERBATIM
        COMMAND_EXPAND_LISTS
        DEPENDS run_${arg_MODULE}_NinjaReady ${arg_DEPENDS}
    )

qt/qtdeclarative src/qml/Qt6QmlMacros.cmake :1452

add_custom_command(
        OUTPUT
            ${qmlls_ini_timestamp_file}
        BYPRODUCTS
            ${qmlls_ini_file}
        DEPENDS
            ${qmlls_ini_build_file}
            COMMAND ${CMAKE_COMMAND}
                        -DqmllsIniPath=${qmlls_ini_file}
                        -P "${__qt_qml_macros_module_base_dir}/Qt6UpdateQmllsIni.cmake"
        COMMAND ${CMAKE_COMMAND} -E copy ${qmlls_ini_build_file} ${qmlls_ini_file}
        COMMAND ${CMAKE_COMMAND} -E touch ${qmlls_ini_timestamp_file}
        COMMENT "Copying .qmlls.ini file at ${qmlls_ini_build_file} to ${qmlls_ini_file}"
        VERBATIM
    )

qtproject/pyside-pyside-setup sources/shiboken6/shibokenmodule/CMakeLists.txt :15

add_custom_command(
    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
    BYPRODUCTS ${sample_SRC}
    COMMAND
        ${tool_wrapper}
        $<TARGET_FILE:Shiboken6::shiboken6>
        --project-file=${CMAKE_CURRENT_BINARY_DIR}/shibokenmodule.txt
        ${GENERATOR_EXTRA_FLAGS}
    DEPENDS ${shibokenmodule_TYPESYSTEM}
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT "Running generator for 'Shiboken'..."
)

vectorgraphics/asymptote cmake-scripts/docgen.cmake :22

add_custom_command(
        OUTPUT ${ASY_TEX_BUILD_ROOT}/asy-latex.pdf ${ASY_TEX_BUILD_ROOT}/asymptote.sty
        DEPENDS ${ASY_DOC_DIR}/asy-latex.dtx
        COMMAND ${PDFLATEX_BASE_ARGUMENTS} ${ASY_DOC_DIR}/asy-latex.dtx
        WORKING_DIRECTORY ${ASY_DOC_DIR}
        BYPRODUCTS ${ASY_LATEX_DTX_ARTIFACTS}
)

prusa3d/Prusa-Firmware-Buddy lib/Prusa-Firmware-MMU/CMakeLists.txt :177

add_custom_command(
    TARGET firmware
    POST_BUILD
    COMMAND
      ${CMAKE_OBJCOPY} -I ihex -O binary
      ${PRUSA_BOARDS_DIR}/bootloaders/prusa_mm_control/Caterina-prusa_mm_control.hex bootloader.bin
    COMMAND ${CMAKE_OBJCOPY} firmware -O binary --gap-fill 0xFF --pad-to 0x00007000 firmware.bin
    COMMAND ${CMAKE_COMMAND} -E cat firmware.bin bootloader.bin > fw_bootloader.bin
    COMMAND ${CMAKE_OBJCOPY} -I binary -O ihex fw_bootloader.bin
            "MMU2S_MMU3_BOOTLOADER_${PROJECT_VERSION}${PROJECT_VERSION_SUFFIX_SHORT}.hex"
    COMMAND
      ${CMAKE_COMMAND} -E copy "MMU2S_MMU3_BOOTLOADER_${PROJECT_VERSION}${PROJECT_VERSION_SUFFIX_SHORT}.hex" "MMU2S_MMU3_BOOTLOADER_${PROJECT_VERSION}.hex"
          BYPRODUCTS bootloader.bin firmware.bin fw_bootloader.bin
    )

OSGeo/grass gui/wxpython/docs/CMakeLists.txt :14

add_custom_command(
    TARGET wxpython_docs
    PRE_BUILD DEPENDS LIB_PYTHON
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMAND ${grass_env_command} ${PYTHON_EXECUTABLE} ${MKHTML_PY} ${html_file}
            > ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${html_file}.html
    BYPRODUCTS ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${html_file}.html)

yugabyte/yugabyte-db src/yb/tserver/CMakeLists.txt :364

add_custom_command(TARGET "${YB_TSERVER_DYNAMIC_EXE_NAME}" POST_BUILD
  COMMAND "${BUILD_SUPPORT_DIR}/gen_flags_metadata_wrapper"
    "--program_name" "${YB_TSERVER_DYNAMIC_EXE_NAME}"
    "--dynamically_linked_exe_suffix=${YB_DYNAMICALLY_LINKED_EXE_SUFFIX}"
    "--output_file_path" "${TSERVER_FLAGS_METADATA_FILE}"
  BYPRODUCTS "${TSERVER_FLAGS_METADATA_FILE}")

ptitSeb/box64 CMakeLists.txt :800

add_custom_command(
        OUTPUT "${BOX64_ROOT}/src/wrapped/generated/functions_list.txt"
        COMMAND "${PYTHON_EXECUTABLE}" "${BOX64_ROOT}/rebuild_wrappers.py"
        "${BOX64_ROOT}"
        "PANDORA" "HAVE_LD80BITS" "NOALIGN" "HAVE_TRACE" "ANDROID" "TERMUX" "STATICBUILD" "LA64" "--"
        ${WRAPPEDS_HEAD}
        MAIN_DEPENDENCY "${BOX64_ROOT}/rebuild_wrappers.py"
        DEPENDS ${WRAPPEDS} ${WRAPPEDS_HEAD}
        BYPRODUCTS ${WRAPPER}
    )

facebook/bpfilter tests/unit/CMakeLists.txt :217

add_custom_command(TARGET unit
        POST_BUILD
        COMMAND
            ${CMAKE_COMMAND}
                -E make_directory
                ${CMAKE_BINARY_DIR}/output/tests
        COMMAND
            ${LCOV_BIN}
                --capture
                --directory ${CMAKE_BINARY_DIR}
                --output-file ${CMAKE_CURRENT_BINARY_DIR}/lcov.out
                --parallel ${N}
                --quiet
        # Only keep the coverage for bpfilter's source files, not the tests.
        COMMAND
            ${LCOV_BIN}
                --output-file ${CMAKE_BINARY_DIR}/output/tests/lcov.out
                --extract ${CMAKE_CURRENT_BINARY_DIR}/lcov.out
                --ignore-errors unused
                --parallel ${N}
                --quiet
                "${CMAKE_SOURCE_DIR}/src/libbpfilter\\*"
                "${CMAKE_SOURCE_DIR}/src/bpfilter\\*"
        COMMAND
            ${LCOV_BIN}
                --summary ${CMAKE_BINARY_DIR}/output/tests/lcov.out
        BYPRODUCTS ${CMAKE_BINARY_DIR}/output/tests/lcov.out
        COMMENT "Generate the lcov.out summary file"
    )

PacktPublishing/The-Modern-Cpp-Challenge libs/curl/docs/libcurl/CMakeLists.txt :24

add_custom_command(OUTPUT "${_pdffile}"
      COMMAND groff -Tps -man "${_srcfile}" > "${_psfile}"
      COMMAND ps2pdf "${_psfile}" "${_pdffile}"
      COMMAND "${CMAKE_COMMAND}" -E remove "${_psfile}"
      DEPENDS "${_srcfile}"
      #BYPRODUCTS "${_psfile}"
      VERBATIM
    )

skylersaleh/SkyEmu src/curl/docs/libcurl/CMakeLists.txt :47

add_custom_command(OUTPUT "${_pdffile}"
      COMMAND groff -Tps -man "${_srcfile}" > "${_psfile}"
      COMMAND ps2pdf "${_psfile}" "${_pdffile}"
      COMMAND "${CMAKE_COMMAND}" -E remove "${_psfile}"
      DEPENDS "${_srcfile}"
      #BYPRODUCTS "${_psfile}"
      VERBATIM
    )

mxcop/src-dgi extern/sdl/cmake/android/SdlAndroidFunctions.cmake :267

add_custom_command(OUTPUT "${apk_file}"
    COMMAND SdlAndroid::apksigner sign
      --ks "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
      --ks-pass pass:android --in "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" --out "${apk_file}"
    DEPENDS "$<TARGET_PROPERTY:${APK_IN},OUTPUT>" "$<TARGET_PROPERTY:${arg_KEYSTORE},OUTPUT>"
    BYPRODUCTS "${apk_file}.idsig"
  )

nrfconnect/sdk-zephyr modules/hal_rpi_pico/bootloader/CMakeLists.txt :57

add_custom_command(TARGET boot_stage2
  POST_BUILD
  BYPRODUCTS boot_stage2.bin
  COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:boot_stage2> boot_stage2.bin
  )

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

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"
)

fossasia/pslab-mini-firmware cmake/stm32/common.cmake :87

add_custom_command(
        TARGET ${TARGET}
        POST_BUILD
        COMMAND ${CMAKE_OBJCOPY} -O ${OBJCOPY_BFD_OUTPUT} "$<TARGET_FILE:${TARGET}>" ${OUTPUT_FILE_PATH}
        BYPRODUCTS ${OUTPUT_FILE_PATH}
        COMMENT "Generating ${OBJCOPY_BFD_OUTPUT} file ${OUTPUT_FILE_NAME}"
    )