set(ROOT_DIR ${CMAKE_SOURCE_DIR}) file(GLOB_RECURSE HEADER_FILES "${ROOT_DIR}/*.h") file(GLOB_RECURSE SOURCE_FILES "${ROOT_DIR}/*.cpp") file(GLOB_RECURSE CMAKE_FILES "${ROOT_DIR}/*.cmake") file(GLOB_RECURSE CMAKE_LISTS_FILES "${ROOT_DIR}/CMakeLists.txt") set(MOC_FILTER ".*/moc_.*") set(BUILD_DIR_FILTER ".*/build/.*") list(FILTER HEADER_FILES EXCLUDE REGEX "${MOC_FILTER}") list(FILTER HEADER_FILES EXCLUDE REGEX "${BUILD_DIR_FILTER}") list(FILTER SOURCE_FILES EXCLUDE REGEX "${MOC_FILTER}") list(FILTER SOURCE_FILES EXCLUDE REGEX "${BUILD_DIR_FILTER}") list(FILTER CMAKE_FILES EXCLUDE REGEX "${BUILD_DIR_FILTER}") list(FILTER CMAKE_LISTS_FILES EXCLUDE REGEX "${BUILD_DIR_FILTER}") execute_process(COMMAND wc -l ${HEADER_FILES} OUTPUT_VARIABLE HEADER_COUNT ERROR_QUIET) execute_process(COMMAND wc -l ${SOURCE_FILES} OUTPUT_VARIABLE SOURCE_COUNT ERROR_QUIET) execute_process(COMMAND wc -l ${CMAKE_FILES} OUTPUT_VARIABLE CMAKE_COUNT ERROR_QUIET) execute_process(COMMAND wc -l ${CMAKE_LISTS_FILES} OUTPUT_VARIABLE CMAKE_LISTS_COUNT ERROR_QUIET) file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/artifacts") set(HEADER_FILE "${CMAKE_SOURCE_DIR}/artifacts/header_lines_count.txt") set(SOURCE_FILE "${CMAKE_SOURCE_DIR}/artifacts/source_lines_count.txt") set(CMAKE_FILE "${CMAKE_SOURCE_DIR}/artifacts/cmake_lines_count.txt") set(CMAKE_LISTS_FILE "${CMAKE_SOURCE_DIR}/artifacts/cmake_lists_lines_count.txt") file(WRITE ${HEADER_FILE} "${HEADER_COUNT}") file(WRITE ${SOURCE_FILE} "${SOURCE_COUNT}") file(WRITE ${CMAKE_FILE} "${CMAKE_COUNT}") file(WRITE ${CMAKE_LISTS_FILE} "${CMAKE_LISTS_COUNT}") message(STATUS "Header line count written to: ${HEADER_FILE}") message(STATUS "Source line count written to: ${SOURCE_FILE}") message(STATUS "CMake line count written to: ${CMAKE_FILE}") message(STATUS "CMakeLists.txt line count written to: ${CMAKE_LISTS_FILE}")