cmake add_custom_target examples

Signatures

add_custom_target(Name [ALL] [command1 [args1...]]
  [COMMAND command2 [args2...] ...]
  [DEPENDS depend depend depend ... ]
  [BYPRODUCTS [files...]]
  [WORKING_DIRECTORY dir]
  [COMMENT comment]
  [JOB_POOL job_pool]
  [JOB_SERVER_AWARE <bool>]
  [VERBATIM] [USES_TERMINAL]
  [COMMAND_EXPAND_LISTS]
[SOURCES src1 [src2...]])

Examples

geodynamics/aspect contrib/world_builder/CMakeLists.txt :554

add_custom_target(install-python
          DEPENDS _gwb
          BYPRODUCTS _gwb
          COMMAND ${Python_EXECUTABLE} ${SETUP_PY_OUT} install)

alicevision/AliceVision src/cmake/CodeCoverage.cmake :700

add_custom_target(${Coverage_NAME}

        # Cleanup fastcov
        COMMAND ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH}
            --search-directory ${BASEDIR}
            --zerocounters

        COMMAND ${FASTCOV_EXEC_TESTS_CMD}
        COMMAND ${FASTCOV_CAPTURE_CMD}
        COMMAND ${FASTCOV_CONVERT_CMD}
        COMMAND ${FASTCOV_HTML_CMD}
        COMMAND ${FASTCOV_POST_CMD}

        # Set output files as GENERATED (will be removed on 'make clean')
        BYPRODUCTS
             ${Coverage_NAME}.info
             ${Coverage_NAME}.json
             ${Coverage_NAME}/index.html  # report directory

        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report."
    )

prusa3d/Prusa-Firmware tests/CMakeLists.txt :36

add_custom_target(
  test_run_all
  COMMAND ${CMAKE_CTEST_COMMAND} ${ctest_test_args}
  COMMAND ${CMAKE_COMMAND} -E touch .ctest-finished || exit 0
  BYPRODUCTS ${PROJECT_BINARY_DIR}/.ctest-finished
  WORKING_DIRECTORY "${PROJECT_BINARY_DIR}"
  DEPENDS tests
  )

NVIDIA/nvshmem src/CMakeLists.txt :811

add_custom_target(hydra
                    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/install_hydra.sh ${CMAKE_CURRENT_SOURCE_DIR}/hydra_build ${CMAKE_CURRENT_BINARY_DIR}
                    COMMAND rm -rf ${CMAKE_CURRENT_SOURCE_DIR}/hydra_build
                    BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/bin/hydra_nameserver
                               ${CMAKE_CURRENT_BINARY_DIR}/bin/hydra_persist
                               ${CMAKE_CURRENT_BINARY_DIR}/bin/hydra_pmi_proxy
                               ${CMAKE_CURRENT_BINARY_DIR}/bin/nvshmrun
                               ${CMAKE_CURRENT_BINARY_DIR}/bin/nvshmrun.hydra
                  )

facebook/rocksdb java/CMakeLists.txt :826

add_custom_target(rocksdb_javadocs_jar ALL
  COMMAND ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR} -C ${CMAKE_CURRENT_BINARY_DIR}/javadoc/rocksdb .
  BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  DEPENDS rocksdb_javadoc
)

chdb-io/chdb src/Functions/URL/CMakeLists.txt :19

add_custom_target(generate-tldlookup-gperf ./tldLookup.sh
        SOURCES tldLookup.sh
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        BYPRODUCTS "${CMAKE_CURRENT_SOURCE_DIR}/tldLookup.gperf"
    )

NVIDIA/MatX cmake/rapids-cmake/rapids-cmake/cmake/write_git_revision_file.cmake :99

add_custom_target(${target}_compute_git_info ALL
                    BYPRODUCTS "${file_path}"
                    COMMENT "Generate git revision file for ${target}"
                    COMMAND ${CMAKE_COMMAND} -DWORKING_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}
                            -DGIT_EXECUTABLE=${GIT_EXECUTABLE}
                            -D_RAPIDS_GIT_PREFIX=${_RAPIDS_PREFIX}
                            -DTEMPLATE_FILE=${CMAKE_CURRENT_FUNCTION_LIST_DIR}/template/git_revision.hpp.in
                            -DFILE_TO_WRITE=${file_path} -P
                            ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/detail/compute_git_info.cmake
                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

gscept/nebula fips-files/include.cmake :421

add_custom_target(GenerateNIDL_${nidlName}
            COMMAND ${PYTHON} ${NROOT}/fips-files/generators/NIDL.py "${f_abs}" "${abs_output_folder}/${out_cs}" "--csharp"
            BYPRODUCTS "${abs_output_folder}${out_cs}"
            COMMENT "IDLC: Generating ${out_cs}..."
            DEPENDS ${NROOT}/fips-files/generators/NIDL.py
            WORKING_DIRECTORY "${NROOT}"
            VERBATIM
            SOURCES "${f_abs}"
        )

CLIUtils/CLI11 cmake/CodeCoverage.cmake :518

add_custom_target(
    ${Coverage_NAME}
    COMMAND ${GCOVR_XML_EXEC_TESTS_CMD}
    COMMAND ${GCOVR_XML_CMD}
    BYPRODUCTS ${Coverage_NAME}.xml
    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
    DEPENDS ${Coverage_DEPENDENCIES}
    VERBATIM # Protect arguments to commands
    COMMENT "Running gcovr to produce Cobertura code coverage report.")

webcamoid/webcamoid StandAlone/ManPages/CMakeLists.txt :31

add_custom_target(manpages ALL
                      ${GZIP_TOOL} -n -c9 webcamoid.1 > webcamoid.1.gz
                      DEPENDS src/webcamoid.1
                      WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src
                      BYPRODUCTS src/webcamoid.1.gz
                      VERBATIM
                      SOURCES src/webcamoid.1.in)

google/filament third_party/dawn/third_party/google_benchmark/src/test/AssemblyTests.cmake :49

add_custom_target(copy_${name} ALL
      COMMAND ${PROJECT_SOURCE_DIR}/tools/strip_asm.py
        $<TARGET_OBJECTS:${name}>
        ${ASM_OUTPUT_FILE}
      BYPRODUCTS ${ASM_OUTPUT_FILE})

percona/percona-xtrabackup cmake/install_macros.cmake :388

ADD_CUSTOM_TARGET(link_protobuf_dlls_plugin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf>" "$<TARGET_FILE_NAME:libprotobuf>"
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf-lite>" "$<TARGET_FILE_NAME:libprotobuf-lite>"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/plugin_output_directory"

      COMMENT "Creating libprotobuf symlinks in plugin_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf}"
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf_lite}"
      )

Devsh-Graphics-Programming/Nabla src/nbl/CMakeLists.txt :628

add_custom_target(dxcompiler 
	COMMAND "${CMAKE_COMMAND}" --build "${DXC_BUILD_DIR}" --target dxcompiler --config $<IF:$<CONFIG:Debug>,Debug,Release> -j${_NBL_JOBS_AMOUNT_}
	BYPRODUCTS "${DXC_LIB}" "${DXC_DLL}"
	VERBATIM
	COMMAND_EXPAND_LISTS
)

mysql/mysql-server cmake/install_macros.cmake :508

ADD_CUSTOM_TARGET(link_fido2_dlls_plugin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/${TARGET_FILE_NAME_fido2}" "${TARGET_FILE_NAME_fido2}"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/plugin_output_directory"

      COMMENT "Creating fido2 symlinks in plugin_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_fido2}"
      )

onnx/onnx-mlir src/Accelerators/NNPA/zdnn.cmake :47

add_custom_target(libzdnn
      COMMAND ${CMAKE_COMMAND} -E copy_if_different
              ${ZDNN_LIBDIR}/libzdnn.a ${NNPA_LIBRARY_PATH}/libzdnn.a
      COMMAND ${CMAKE_COMMAND} -E copy_if_different
              ${ZDNN_TOPDIR}/zdnn/zdnn.h ${NNPA_INCLUDE_PATH}/zdnn.h
      DEPENDS zdnn
      # BYPRODUCTS requires cmake 3.20+ not yet available on Ubuntu Focal
      # BYPRODUCTS ${NNPA_LIBRARY_PATH}/libzdnn.a ${NNPA_INCLUDE_PATH}/zdnn.h
      )

facebook/fbthrift build/fbcode_builder/CMake/RustStaticLibrary.cmake :215

add_custom_target(
    ${cargo_target}
    ALL
    COMMAND
      "${CMAKE_COMMAND}" -E remove -f "${CMAKE_CURRENT_SOURCE_DIR}/Cargo.lock"
    COMMAND
      "${CMAKE_COMMAND}" -E env
      "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}"
      ${extra_cargo_env}
      ${CARGO_COMMAND}
      ${cargo_flags}
    COMMENT "Building Rust executable '${crate_name}'..."
    JOB_POOL rust_job_pool
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    BYPRODUCTS
      "${CMAKE_CURRENT_BINARY_DIR}/debug/${executable_name}"
      "${CMAKE_CURRENT_BINARY_DIR}/release/${executable_name}"
  )

cginternals/glbinding cmake/Gcov.cmake :37

add_custom_target(
            coverage-info
            COMMAND
                ${lcov_EXECUTABLE}
                    --capture
                    --no-external
                    --base-directory ${CMAKE_BINARY_DIR}
                    --directory ${CMAKE_SOURCE_DIR}
                    --output-file ${CMAKE_BINARY_DIR}/coverage-captured.info
                    -q
            WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
            BYPRODUCTS ${CMAKE_BINARY_DIR}/coverage-captured.info
        )

sigrokproject/pulseview manual/CMakeLists.txt :56

add_custom_target(manual-html
	COMMAND ${ASCIIDOCTOR_EXECUTABLE}
		-a stylesheet=${STYLE_SHEET}
		-a stylesdir=${CMAKE_CURRENT_SOURCE_DIR}/${STYLES_DIR}
		-a toc=left
		--destination-dir=${CMAKE_CURRENT_BINARY_DIR}
		${MANUAL_SRC}
	BYPRODUCTS ${MANUAL_OUT_HTML}
	DEPENDS ${MANUAL_SRC}
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
	COMMENT "Generating manual, HTML output"
)

KiCad/kicad-source-mirror common/CMakeLists.txt :36

add_custom_target(
    version_header ALL
    COMMAND ${CMAKE_COMMAND}
        -DKICAD_VERSION_EXTRA=${KICAD_VERSION_EXTRA}
        -DOUTPUT_FILE=${CMAKE_BINARY_DIR}/kicad_build_version.h
        -DTEXT_OUTPUT_FILE=${CMAKE_BINARY_DIR}/kicad_build_version.txt
        -DSRC_PATH=${PROJECT_SOURCE_DIR}
        -DKICAD_CMAKE_MODULE_PATH=${KICAD_CMAKE_MODULE_PATH}
        -P ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR} BYPRODUCTS ${CMAKE_BINARY_DIR}/kicad_build_version.h
    DEPENDS ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
    COMMENT "Generating version string header"
    )

celtera/avendish cmake/avendish.max.cmake :187

add_custom_target(dump_maxref_${AVND_FX_TARGET} ALL
          json_to_maxref "${_maxref_template}" "${_dump_path}" "${_maxref_destination}"
          DEPENDS
            "${_dump_path}"
            json_to_maxref
          BYPRODUCTS
            "${_maxref_destination}"
        )

jasp-stats/jasp-desktop CMakeLists.txt :179

add_custom_target(
    R-Interface
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/R-Interface
    BYPRODUCTS ${CMAKE_BINARY_DIR}/R-Interface/libR-Interface.dll
               ${CMAKE_BINARY_DIR}/R-Interface/libR-Interface.dll.a
			   ${CMAKE_BINARY_DIR}/R-Interface/libR-InterfaceNoRInside.dll
			   ${CMAKE_BINARY_DIR}/R-Interface/libR-InterfaceNoRInside.dll.a
	COMMAND
      ${CMAKE_COMMAND} -G "MinGW Makefiles" -S . -B
      ${CMAKE_BINARY_DIR}/R-Interface "-DRTOOLS_PATH:PATH=${RTOOLS_PATH}"
      "-DCMAKE_C_COMPILER:PATH=${RTOOLS_C_COMPILER}"
      "-DCMAKE_CXX_COMPILER:PATH=${RTOOLS_CXX_COMPILER}"
      "-DCMAKE_MAKE_PROGRAM:PATH=${RTOOLS_MAKE_PROGRAM}"
      "-DJASP_BINARY_DIR:PATH=${CMAKE_BINARY_DIR}"
      "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
      "-DR_VERSION:STRING=${R_VERSION}"
    COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/R-Interface
    USES_TERMINAL
    COMMENT "------ Configuring and Building the libR-Interface")

logicalclocks/rondb cmake/install_macros.cmake :388

ADD_CUSTOM_TARGET(link_protobuf_dlls_plugin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf>" "$<TARGET_FILE_NAME:libprotobuf>"
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf-lite>" "$<TARGET_FILE_NAME:libprotobuf-lite>"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/plugin_output_directory"

      COMMENT "Creating libprotobuf symlinks in plugin_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf}"
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf_lite}"
      )

Chatterino/chatterino2 cmake/CodeCoverage.cmake :335

add_custom_target(${Coverage_NAME}
        COMMAND ${LCOV_CLEAN_CMD}
        COMMAND ${LCOV_BASELINE_CMD} 
        COMMAND ${LCOV_EXEC_TESTS_CMD}
        COMMAND ${LCOV_CAPTURE_CMD}
        COMMAND ${LCOV_BASELINE_COUNT_CMD}
        COMMAND ${LCOV_FILTER_CMD} 
        COMMAND ${LCOV_GEN_HTML_CMD}

        # Set output files as GENERATED (will be removed on 'make clean')
        BYPRODUCTS
            ${Coverage_NAME}.base
            ${Coverage_NAME}.capture
            ${Coverage_NAME}.total
            ${Coverage_NAME}.info
            ${Coverage_NAME}/index.html
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
    )

boutproject/BOUT-dev cmake/Sanitizers.cmake :25

add_custom_target(code-coverage-capture
          COMMAND
            lcov -c --directory  "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/bout++.dir/src"
              --output-file "${COVERAGE_FILE}"
          COMMAND
            genhtml --output-directory "${COVERAGE_NAME}" --demangle-cpp --legend --show-details "${COVERAGE_FILE}"
          COMMAND
            "${CMAKE_COMMAND}" -E echo ${COVERAGE_MSG}
          WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
          COMMENT "Capturing coverage information"
          BYPRODUCTS
            "${COVERAGE_FILE}"
            "${COVERAGE_NAME}/index.html"
          )

libjxl/libjxl tools/CMakeLists.txt :100

add_custom_target(
    tool_version_git
    ${CMAKE_COMMAND}
      -D JPEGXL_ROOT_DIR=${CMAKE_SOURCE_DIR}
      -D DST=${CMAKE_CURRENT_BINARY_DIR}/tool_version_git.h
      -P ${CMAKE_CURRENT_SOURCE_DIR}/git_version.cmake
    BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/tool_version_git.h"
  )

HumbleNet/HumbleNet src/humblenet/CMakeLists.txt :174

add_custom_target(humblenet_cs
		COMMAND APIBuilder csharp ${CMAKE_CURRENT_SOURCE_DIR}/HumbleNet_API.json ${CMAKE_CURRENT_SOURCE_DIR}/humblenet_api.cs ${CMAKE_BINARY_DIR}/humblenet.cs
		MAIN_DEPENDENCY HumbleNet_API.json
		DEPENDS APIBuilder "${CMAKE_CURRENT_SOURCE_DIR}/humblenet_api.cs"
		BYPRODUCTS ${CMAKE_BINARY_DIR}/humblenet.cs
		SOURCES humblenet_api.cs
		COMMENT "Process API to humblenet.cs"
	)

facebook/mysql-5.6 cmake/install_macros.cmake :377

ADD_CUSTOM_TARGET(link_protobuf_dlls_plugin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf>" "$<TARGET_FILE_NAME:libprotobuf>"
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf-lite>" "$<TARGET_FILE_NAME:libprotobuf-lite>"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/plugin_output_directory"

      COMMENT "Creating libprotobuf symlinks in plugin_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf}"
      "${CMAKE_BINARY_DIR}/plugin_output_directory/${TARGET_FILE_NAME_libprotobuf_lite}"
      )

google/binexport cmake/FindIdaSdk.cmake :174

add_custom_target(ida32_universal
        DEPENDS "${IdaSdk_LIBPATH32_ARM64}/libida.dylib"
                "${IdaSdk_LIBPATH32_X64}/libida.dylib"
        BYPRODUCTS "${_ida32_universal_lib}"
        COMMAND lipo -create "${IdaSdk_LIBPATH32_ARM64}/libida.dylib"
                             "${IdaSdk_LIBPATH32_X64}/libida.dylib"
                     -output "${_ida32_universal_lib}"
      )

BearWare/TeamTalk5 Client/qtTeamTalk/CMakeLists.txt :346

add_custom_target(QtTeamTalk5Product ALL
              # Copy Provisioning Profile
              COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Entitlements.plist ${CMAKE_CURRENT_SOURCE_DIR}/${TEAMTALK_TARGET}.app/Contents/embedded.provisionprofile
              # Run code sign
              COMMAND codesign --deep -f --sign "Apple Distribution: Bjoern Rasmussen" --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/Entitlements.plist ${CMAKE_CURRENT_SOURCE_DIR}/${TEAMTALK_TARGET}.app
              # Run productbuild
              COMMAND productbuild --component ${CMAKE_CURRENT_SOURCE_DIR}/${TEAMTALK_TARGET}.app /Applications --sign "3rd Party Mac Developer Installer: Bjoern Rasmussen" ${TEAMTALK_TARGET}_AppStore_Setup.pkg
              COMMAND productsign --sign "3rd Party Mac Developer Installer: Bjoern Rasmussen" ${TEAMTALK_TARGET}_AppStore_Setup.pkg ${TEAMTALK_TARGET}_AppStore_Setup_Signed.pkg
              COMMENT "Building TeamTalk 5 Installer for AppStore"
              WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
              BYPRODUCTS ${TEAMTALK_TARGET}_AppStore_Setup_Signed.pkg
              DEPENDS QtTeamTalk5ClientProduct)

libgeos/geos doxygen/CMakeLists.txt :43

add_custom_target(docs
        COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
        BYPRODUCTS ${DOXYGEN_LOGFILE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen_docs)

H-uru/Plasma cmake/Sanitizers.cmake :100

add_custom_target(tidy_${TARGET}
                    DEPENDS tidy_init
                    COMMENT "Running clang-tidy on ${TARGET}..."
                    COMMAND_EXPAND_LISTS
                    COMMAND ${CLANG_TIDY_EXE} --quiet -p "${CMAKE_BINARY_DIR}" "-export-fixes=${_TARGET_FIXES_FILE}" "${_TIDY_SOURCES}"
                    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
                    BYPRODUCTS "${_TARGET_FIXES_FILE}"
                )

ipsilon/evmone cmake/cable/CableBuildInfo.cmake :54

add_custom_target(
        ${name}-git
        COMMAND ${CMAKE_COMMAND}
        -DGIT=${GIT_EXECUTABLE}
        -DSOURCE_DIR=${PROJECT_SOURCE_DIR}
        -DOUTPUT_DIR=${output_dir}
        -P ${cable_buildinfo_template_dir}/gitinfo.cmake
        BYPRODUCTS ${output_dir}/gitinfo.txt
    )

Komet/MediaElch cmake/Gcov.cmake :30

add_custom_target(
            coverage-init
            COMMAND
                ${lcov_EXECUTABLE}
                    --no-external
                    --capture
                    --initial
                    --base-directory ${CMAKE_BINARY_DIR}
                    --directory ${CMAKE_SOURCE_DIR}
                    --output-file ${CMAKE_BINARY_DIR}/coverage-base.info
                    -q
            WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
            BYPRODUCTS ${CMAKE_BINARY_DIR}/coverage-base.info
        )

doxygen/doxygen cmake/git_watcher.cmake :197

add_custom_target(check_git_repository
        ALL
	DEPENDS ${PRE_CONFIGURE_GIT_VERSION_FILE}
	BYPRODUCTS ${POST_CONFIGURE_GIT_VERSION_FILE}
	BYPRODUCTS ${GIT_STATE_FILE}
        COMMENT "Checking the git repository for changes..."
        COMMAND
            ${CMAKE_COMMAND}
            -D_BUILD_TIME_CHECK_GIT=TRUE
            -DGIT_WORKING_DIR=${GIT_WORKING_DIR}
            -DGIT_EXECUTABLE=${GIT_EXECUTABLE}
            -DGIT_STATE_FILE=${GIT_STATE_FILE}
	    -DGIT_CONFIG_DIR=${GIT_CONFIG_DIR}
	    -DPRE_CONFIGURE_GIT_VERSION_FILE=${PRE_CONFIGURE_GIT_VERSION_FILE}
	    -DPOST_CONFIGURE_GIT_VERSION_FILE=${POST_CONFIGURE_GIT_VERSION_FILE}
            -P "${CMAKE_CURRENT_LIST_FILE}")

percona/percona-xtradb-cluster cmake/install_macros.cmake :364

ADD_CUSTOM_TARGET(link_protobuf_dlls_bin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf>" "$<TARGET_FILE_NAME:libprotobuf>"
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf-lite>" "$<TARGET_FILE_NAME:libprotobuf-lite>"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/runtime_output_directory"

      COMMENT "Creating libprotobuf symlinks in runtime_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/runtime_output_directory/${TARGET_FILE_NAME_libprotobuf}"
      "${CMAKE_BINARY_DIR}/runtime_output_directory/${TARGET_FILE_NAME_libprotobuf_lite}"
      )

glKarin/com.n0n3m4.diii4a Q3E/src/main/jni/deplibs/fluidsynth/cmake_admin/CodeCoverage.cmake :328

add_custom_target(${Coverage_NAME}
        COMMAND ${LCOV_CLEAN_CMD}
        COMMAND ${LCOV_BASELINE_CMD} 
        COMMAND ${LCOV_EXEC_TESTS_CMD}
        COMMAND ${LCOV_CAPTURE_CMD}
        COMMAND ${LCOV_BASELINE_COUNT_CMD}
        COMMAND ${LCOV_FILTER_CMD} 
        COMMAND ${LCOV_GEN_HTML_CMD}

        # Set output files as GENERATED (will be removed on 'make clean')
        BYPRODUCTS
            ${Coverage_NAME}.base
            ${Coverage_NAME}.capture
            ${Coverage_NAME}.total
            ${Coverage_NAME}.info
            ${Coverage_NAME}/index.html
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
    )

biometrics/openbr share/openbr/cmake/CodeCoverage.cmake :362

add_custom_target(${Coverage_NAME}
        COMMAND ${LCOV_CLEAN_CMD}
        COMMAND ${LCOV_BASELINE_CMD}
        COMMAND ${LCOV_EXEC_TESTS_CMD}
        COMMAND ${LCOV_CAPTURE_CMD}
        COMMAND ${LCOV_BASELINE_COUNT_CMD}
        COMMAND ${LCOV_FILTER_CMD}
        COMMAND ${LCOV_GEN_HTML_CMD}
        ${GCOVR_XML_CMD_COMMAND}

        # Set output files as GENERATED (will be removed on 'make clean')
        BYPRODUCTS
            ${Coverage_NAME}.base
            ${Coverage_NAME}.capture
            ${Coverage_NAME}.total
            ${Coverage_NAME}.info
            ${GCOVR_XML_CMD_BYPRODUCTS}
            ${Coverage_NAME}/index.html
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
    )

SeisSol/SeisSol cmake/CodeCoverage.cmake :338

add_custom_target(${Coverage_NAME}
            COMMAND ${LCOV_CLEAN_CMD}
            COMMAND ${LCOV_BASELINE_CMD}
            COMMAND ${LCOV_EXEC_TESTS_CMD}
            COMMAND ${LCOV_CAPTURE_CMD}
            COMMAND ${LCOV_BASELINE_COUNT_CMD}
            COMMAND ${LCOV_FILTER_CMD}
            COMMAND ${LCOV_GEN_HTML_CMD}

            # Set output files as GENERATED (will be removed on 'make clean')
            BYPRODUCTS
            ${Coverage_NAME}.base
            ${Coverage_NAME}.capture
            ${Coverage_NAME}.total
            ${Coverage_NAME}.info
            ${Coverage_NAME}/index.html
            WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
            DEPENDS ${Coverage_DEPENDENCIES}
            VERBATIM # Protect arguments to commands
            COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report."
            )

percona/percona-server cmake/install_macros.cmake :364

ADD_CUSTOM_TARGET(link_protobuf_dlls_bin ALL
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf>" "$<TARGET_FILE_NAME:libprotobuf>"
      COMMAND ${CMAKE_COMMAND} -E create_symlink
      "../lib/$<TARGET_FILE_NAME:libprotobuf-lite>" "$<TARGET_FILE_NAME:libprotobuf-lite>"
      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/runtime_output_directory"

      COMMENT "Creating libprotobuf symlinks in runtime_output_directory"

      BYPRODUCTS
      "${CMAKE_BINARY_DIR}/runtime_output_directory/${TARGET_FILE_NAME_libprotobuf}"
      "${CMAKE_BINARY_DIR}/runtime_output_directory/${TARGET_FILE_NAME_libprotobuf_lite}"
      )

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

add_custom_target(
    test_run_all
    COMMAND ${CMAKE_CTEST_COMMAND} ${ctest_test_args}
    COMMAND ${CMAKE_COMMAND} -E touch .ctest-finished || exit 0
    BYPRODUCTS ${PROJECT_BINARY_DIR}/.ctest-finished
    WORKING_DIRECTORY "${PROJECT_BINARY_DIR}"
    DEPENDS tests_clean tests
    )

DrTimothyAldenDavis/SuiteSparse LAGraph/cmake_modules/CodeCoverage.cmake :557

add_custom_target(${Coverage_NAME}
        COMMAND ${GCOVR_HTML_EXEC_TESTS_CMD}
        COMMAND ${GCOVR_HTML_FOLDER_CMD}
        COMMAND ${GCOVR_HTML_CMD}

        BYPRODUCTS ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html  # report directory
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Running gcovr to produce HTML code coverage report."
    )

fluent/fluent-bit lib/wasm-micro-runtime-WAMR-2.4.1/samples/ref-types/CMakeLists.txt :132

add_custom_target(hello_wasm ALL
  COMMAND ${WAT2WASM} ${WAT_FILE} ${WAT2WASM_FLAGS} -o ${PROJECT_BINARY_DIR}/hello.wasm
  DEPENDS ${WAT_FILE}
  BYPRODUCTS ${PROJECT_BINARY_DIR}/hello.wasm
  VERBATIM
  SOURCES ${WAT_FILE}
)

OSGeo/grass man/CMakeLists.txt :3

add_custom_target(
  build_full_index
  COMMAND
    ${grass_env_command} ${PYTHON_EXECUTABLE}
    ${CMAKE_CURRENT_SOURCE_DIR}/build_full_index.py
    ${YEAR}
  BYPRODUCTS ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/full_index.html
  DEPENDS ALL_MODULES LIB_PYTHON GUI_WXPYTHON
  COMMENT "man generation: build full index")

apache/celix cmake/cmake_celix/ContainerPackaging.cmake :442

add_custom_target(${CONTAINER_TARGET}_copy_bundle_${BUNDLE_ID}
                COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BUNDLE_FILE} ${DEST}
                BYPRODUCTS ${DEST}
                DEPENDS ${DEPS}
            )

yugabyte/yugabyte-db src/yb/master/CMakeLists.txt :320

add_custom_target(
  gen_auto_flags_json ALL
  COMMAND ${GEN_AUTO_FLAGS_COMMAND}
  BYPRODUCTS "${AUTO_FLAGS_FILE}"
  DEPENDS "${YB_MASTER_DYNAMIC_EXE_NAME}" "${YB_TSERVER_DYNAMIC_EXE_NAME}")

vgmstream/vgmstream cmake/dependencies/celt.cmake :131

add_custom_target(CELT_${ver}_CONFIGURE
				COMMAND "${CELT_${ver}_PATH}/configure" ${CELT_${ver}_CONF}
				DEPENDS ${CELT_${ver}_PATH}/configure
				BYPRODUCTS ${CELT_${ver}_BIN}/Makefile
				WORKING_DIRECTORY ${CELT_${ver}_BIN}
			)

FluidSynth/fluidsynth cmake_admin/CodeCoverage.cmake :455

add_custom_target(${Coverage_NAME}
        COMMAND ${GCOVR_HTML_EXEC_TESTS_CMD}
        COMMAND ${GCOVR_HTML_FOLDER_CMD}
        COMMAND ${GCOVR_HTML_CMD}
        COMMAND ${GCOVR_SONAR_CMD}

        BYPRODUCTS ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html  # report directory
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Running gcovr to produce HTML code coverage report."
    )

nanoporetech/dorado cmake/CodeCoverage.cmake :693

add_custom_target(${Coverage_NAME}

        # Cleanup fastcov
        COMMAND ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH}
            --search-directory ${BASEDIR}
            --zerocounters

        COMMAND ${FASTCOV_EXEC_TESTS_CMD}
        COMMAND ${FASTCOV_CAPTURE_CMD}
        COMMAND ${FASTCOV_CONVERT_CMD}
        COMMAND ${FASTCOV_HTML_CMD}
        COMMAND ${FASTCOV_POST_CMD}

        # Set output files as GENERATED (will be removed on 'make clean')
        BYPRODUCTS
             ${Coverage_NAME}.info
             ${Coverage_NAME}.json
             ${Coverage_NAME}/index.html  # report directory

        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
        DEPENDS ${Coverage_DEPENDENCIES}
        VERBATIM # Protect arguments to commands
        COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report."
    )

XRPL-Labs/xrpld-hooks Builds/CMake/RippledCov.cmake :35

add_custom_target (coverage_report
        USES_TERMINAL
        COMMAND ${CMAKE_COMMAND} -E echo "Generating coverage - results will be in ${CMAKE_BINARY_DIR}/coverage/index.html."
        COMMAND ${CMAKE_COMMAND} -E echo "Running rippled tests."
        COMMAND rippled --unittest$<$<BOOL:${coverage_test}>:=${coverage_test}> --quiet --unittest-log
        COMMAND ${LLVM_PROFDATA}
          merge -sparse default.profraw -o rip.profdata
        COMMAND ${CMAKE_COMMAND} -E echo "Summary of coverage:"
        COMMAND ${LLVM_COV}
          report -instr-profile=rip.profdata
          $<TARGET_FILE:rippled> ${extract_pattern}
        # generate html report
        COMMAND ${LLVM_COV}
          show -format=html -output-dir=${CMAKE_BINARY_DIR}/coverage
          -instr-profile=rip.profdata
          $<TARGET_FILE:rippled> ${extract_pattern}
        BYPRODUCTS coverage/index.html)

FujiNetWIFI/fujinet-firmware components/expat/expat/expat/CMakeLists.txt :730

add_custom_target(
        xmlts-zip-downloaded
        COMMAND
            sh -c 'test -f xmlts.zip || wget --output-document=xmlts.zip https://www.w3.org/XML/Test/xmlts20080827.zip'
        BYPRODUCTS
            tests/xmlts.zip
        WORKING_DIRECTORY
            tests/)

drawpile/Drawpile cmake/GitVersion.cmake :32

add_custom_target("${ARG_TARGET_NAME}" ALL
				DEPENDS "${in_file}"
				BYPRODUCTS "${out_file}"
				COMMENT "Generating ${out_filename} with Git version"
				COMMAND "${CMAKE_COMMAND}"
					"-DGIT_EXECUTABLE=${GIT_EXECUTABLE}"
					"-DGIT_VERSION_IN_FILE=${in_file}"
					"-DGIT_VERSION_OUT_FILE=${out_file}"
					"-DGIT_VERSION_BUILD_LABEL=${ARG_BUILD_LABEL}"
					"-DGIT_VERSION_VAR=${ARG_VAR}"
					"-DGIT_VERSION_FALLBACK=${PROJECT_VERSION}"
					-P "${CMAKE_CURRENT_FUNCTION_LIST_FILE}"
				WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
			)

embeddedartistry/libc CMakeLists.txt :224

add_custom_target(complexity-xml
    COMMAND
      ${LIZARD_BASE_ARGS}
      --xml # Generate XML output
      ${LIZARD_PATHS}
      # Redirect output to file
      > ${CMAKE_BINARY_DIR}/complexity.xml
    BYPRODUCTS
      ${CMAKE_BINARY_DIR}/complexity.xml
  )