Skip to content

Commit 6519aee

Browse files
committed
[BUILD] switch to simple listing files
1 parent b48b40b commit 6519aee

8 files changed

Lines changed: 28 additions & 51 deletions

CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ function(target_file_copy_if_different TARGET FILE DEST)
99
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FILE}" "${DEST}"
1010
)
1111
endfunction()
12+
function(file_dependent_read_list FILE LIST)
13+
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${FILE}) # watch the file
14+
file(STRINGS "${FILE}" TEMP_LIST)
15+
set(${LIST} "${TEMP_LIST}" PARENT_SCOPE)
16+
endfunction()
1217

1318
project ("OpenSHC")
1419

@@ -59,7 +64,7 @@ link_directories(${CMAKE_SOURCE_DIR}/dependencies/recreated/lib)
5964
link_libraries(binkw32 Mss32)
6065

6166
# Handle pklib
62-
include(${CMAKE_SOURCE_DIR}/cmake/pklib-sources.cmake) # PKLIB_SOURCES
67+
file_dependent_read_list("${CMAKE_SOURCE_DIR}/cmake/pklib-sources.txt" PKLIB_SOURCES)
6368
add_library(pklib ${PKLIB_SOURCES})
6469
include_directories(${CMAKE_SOURCE_DIR}/dependencies/pklib)
6570
link_libraries(pklib)
@@ -82,7 +87,7 @@ link_libraries(
8287

8388
# Include core source and precomp header
8489
set(PCH_FILE ${CMAKE_SOURCE_DIR}/src/precomp/pch.h)
85-
include(${CMAKE_SOURCE_DIR}/cmake/core-sources.cmake) # CORE_SOURCES
90+
file_dependent_read_list("${CMAKE_SOURCE_DIR}/cmake/core-sources.txt" CORE_SOURCES)
8691

8792

8893

@@ -132,7 +137,7 @@ target_sources(OpenSHC.dll PRIVATE ${BUILD_TRIGGER_FILE})
132137
add_dependencies(OpenSHC.dll OpenSHC.dll.trigger)
133138

134139
# Copy ucp definition files
135-
include(${CMAKE_SOURCE_DIR}/cmake/ucp-definition.cmake) # UCP_DEFINITION
140+
file_dependent_read_list("${CMAKE_SOURCE_DIR}/cmake/ucp-definition.txt" UCP_DEFINITION)
136141
foreach(FILE IN LISTS UCP_DEFINITION)
137142
get_filename_component(DIR "${FILE}" DIRECTORY)
138143
if (DIR)

cmake/core-sources.cmake

Lines changed: 0 additions & 8 deletions
This file was deleted.

cmake/core-sources.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
src/core/MainImplementation.cpp
2+
src/core/Resolver.cpp
3+
src/core/ViewportRenderState.cpp
4+
src/core/entry.cpp
5+
src/core/windowslib.cpp

cmake/pklib-sources.cmake

Lines changed: 0 additions & 6 deletions
This file was deleted.

cmake/pklib-sources.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dependencies/pklib/crc32.c
2+
dependencies/pklib/explode.c
3+
dependencies/pklib/implode.c

cmake/ucp-definition.cmake

Lines changed: 0 additions & 8 deletions
This file was deleted.

cmake/ucp-definition.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
definition.yml
2+
init.lua
3+
locale/description-en.md
4+
locale/en.yml
5+
options.yml

create-include-lists.cmake

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
cmake_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}")
4238
endfunction()
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

Comments
 (0)