77
88cmake_minimum_required (VERSION 3.10 )
99
10- function (generate_file_list SOURCE_ROOT PATTERNS_LIST OUTPUT_FILE VAR_NAME )
10+ function (generate_file_list SOURCE_ROOT PATTERNS_LIST OUTPUT_FILE )
1111 set (ALL_ENTRIES "" )
1212
1313 # 1. Recursively collect entries for each pattern
@@ -30,37 +30,18 @@ function(generate_file_list SOURCE_ROOT PATTERNS_LIST OUTPUT_FILE VAR_NAME)
3030 # 4. Sort alphabetically
3131 list (SORT FILES_ONLY)
3232
33- # 5. Generate output include file
34- file (WRITE "${OUTPUT_FILE} " "# Auto-generated file — do not edit!\n " )
35- file (APPEND "${OUTPUT_FILE} " "set(${VAR_NAME} \n " )
36- foreach (FILE IN LISTS FILES_ONLY)
37- file (APPEND "${OUTPUT_FILE} " " ${FILE} \n " )
38- endforeach ()
39- file (APPEND "${OUTPUT_FILE} " ")\n " )
33+ # 5. Generate output file
34+ string (JOIN "\n " FILES_ONLY_STRING ${FILES_ONLY} )
35+ file (WRITE "${OUTPUT_FILE} " "${FILES_ONLY_STRING} \n " )
4036
4137 message (STATUS "Generated file list in: ${OUTPUT_FILE} " )
4238endfunction ()
4339
44-
45- # Directory whose files you want to list
46- set (SOURCE_ROOT "${CMAKE_CURRENT_LIST_DIR} /src" )
47-
48- # File pattern (e.g., "*.cpp", "*.h", "*.*", "*.txt")
49- set (PATTERN "*.cpp" )
50-
51- # Where to write the generated include file
52- set (OUTPUT_FILE "${CMAKE_CURRENT_LIST_DIR} /file_list.cmake" )
53-
54- # Variable name that will appear inside file_list.cmake
55- set (VAR_NAME "GENERATED_FILES" )
56-
57- file (MAKE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /cmake" )
58-
5940# core sources
60- generate_file_list ("${CMAKE_CURRENT_LIST_DIR} " "src/core/*.c;src/core/*.cpp" "${CMAKE_CURRENT_LIST_DIR} /cmake/core-sources.cmake" CORE_SOURCES )
41+ generate_file_list ("${CMAKE_CURRENT_LIST_DIR} " "src/core/*.c;src/core/*.cpp" "${CMAKE_CURRENT_LIST_DIR} /cmake/core-sources.txt" )
6142
6243# pklib sources
63- generate_file_list ("${CMAKE_CURRENT_LIST_DIR} " "dependencies/pklib/*.c" "${CMAKE_CURRENT_LIST_DIR} /cmake/pklib-sources.cmake" PKLIB_SOURCES )
44+ generate_file_list ("${CMAKE_CURRENT_LIST_DIR} " "dependencies/pklib/*.c" "${CMAKE_CURRENT_LIST_DIR} /cmake/pklib-sources.txt" )
6445
6546# ucp definition
66- generate_file_list ("${CMAKE_CURRENT_LIST_DIR} /ucp" "*.lua;*.yml;*.md" "${CMAKE_CURRENT_LIST_DIR} /cmake/ucp-definition.cmake" UCP_DEFINITION )
47+ generate_file_list ("${CMAKE_CURRENT_LIST_DIR} /ucp" "*.lua;*.yml;*.md" "${CMAKE_CURRENT_LIST_DIR} /cmake/ucp-definition.txt" )
0 commit comments