Windows: leave puzzles.rc out of auxiliary GUI tools.

There's no reason to put the .rc file into developer tools like
galaxieseditor at all. Its current job is to add an icon, and those
tools don't have any. I'm about to add version information, and they
won't have that either (in particular, no description string like the
games do).

The CLI developer tools already don't include puzzles.rc, and GUI dev
tools are more like those than they are like puzzles.

puzzles.rc was being added to an aux GUI tool's source file list by
get_platform_puzzle_extra_source_files(), which is called for aux GUI
tools as well as for puzzles proper. However, it's not as simple as
just eliminating that call, because on Unix, we _do_ need to add the
same extra source files to GUI dev tools that we do for puzzles,
because gtk.c contains external references to either an array of the
puzzle's icons or an empty array indicating that there aren't any, so
_something_ has to provide that.

So instead, get_platform_puzzle_extra_source_files now takes an extra
argument saying whether the program is a real puzzle or an aux tool;
windows.cmake leaves out puzzles.rc in the latter case, but unix.cmake
puts the icon array in unconditionally.
This commit is contained in:
Simon Tatham
2023-11-19 15:03:40 +00:00
parent cb8dcc34f7
commit 595338fa43
6 changed files with 10 additions and 8 deletions

View File

@ -81,7 +81,7 @@ endif()
set(build_cli_programs FALSE) set(build_cli_programs FALSE)
set(build_gui_programs FALSE) set(build_gui_programs FALSE)
function(get_platform_puzzle_extra_source_files OUTVAR NAME) function(get_platform_puzzle_extra_source_files OUTVAR NAME AUXILIARY)
set(${OUTVAR} PARENT_SCOPE) set(${OUTVAR} PARENT_SCOPE)
endfunction() endfunction()

View File

@ -12,7 +12,7 @@ add_custom_target(nvm-puzzle-applet
${CMAKE_SOURCE_DIR}/PuzzleApplet.java ${CMAKE_SOURCE_DIR}/PuzzleApplet.java
DEPENDS ${CMAKE_SOURCE_DIR}/PuzzleApplet.java) DEPENDS ${CMAKE_SOURCE_DIR}/PuzzleApplet.java)
function(get_platform_puzzle_extra_source_files OUTVAR NAME) function(get_platform_puzzle_extra_source_files OUTVAR NAME AUXILIARY)
set(${OUTVAR} PARENT_SCOPE) set(${OUTVAR} PARENT_SCOPE)
endfunction() endfunction()

View File

@ -10,7 +10,7 @@ set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
set(build_gui_programs FALSE) # they don't really fit in the OS X GUI model set(build_gui_programs FALSE) # they don't really fit in the OS X GUI model
function(get_platform_puzzle_extra_source_files OUTVAR NAME) function(get_platform_puzzle_extra_source_files OUTVAR NAME AUXILIARY)
set(${OUTVAR} PARENT_SCOPE) set(${OUTVAR} PARENT_SCOPE)
endfunction() endfunction()

View File

@ -63,7 +63,7 @@ endif()
add_compile_definitions(HELP_DIR="${CMAKE_INSTALL_PREFIX}/share/sgt-puzzles/help") add_compile_definitions(HELP_DIR="${CMAKE_INSTALL_PREFIX}/share/sgt-puzzles/help")
function(get_platform_puzzle_extra_source_files OUTVAR NAME) function(get_platform_puzzle_extra_source_files OUTVAR NAME AUXILIARY)
if(build_icons AND EXISTS ${CMAKE_SOURCE_DIR}/icons/${NAME}.sav) if(build_icons AND EXISTS ${CMAKE_SOURCE_DIR}/icons/${NAME}.sav)
# If we have the equipment to rebuild the puzzles' icon images # If we have the equipment to rebuild the puzzles' icon images
# from scratch, do so. Then changes in the puzzle display code # from scratch, do so. Then changes in the puzzle display code

View File

@ -33,8 +33,10 @@ if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
/wd4244 /wd4267 /wd4018 /wd4146 /wd4305") /wd4244 /wd4267 /wd4018 /wd4146 /wd4305")
endif() endif()
function(get_platform_puzzle_extra_source_files OUTVAR NAME) function(get_platform_puzzle_extra_source_files OUTVAR NAME AUXILIARY)
if(NOT AUXILIARY)
set(${OUTVAR} ${CMAKE_SOURCE_DIR}/puzzles.rc PARENT_SCOPE) set(${OUTVAR} ${CMAKE_SOURCE_DIR}/puzzles.rc PARENT_SCOPE)
endif()
endfunction() endfunction()
function(set_platform_gui_target_properties TARGET) function(set_platform_gui_target_properties TARGET)

View File

@ -128,7 +128,7 @@ function(puzzle NAME)
set(puzzle_sources ${puzzle_sources} ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.c PARENT_SCOPE) set(puzzle_sources ${puzzle_sources} ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.c PARENT_SCOPE)
endif() endif()
get_platform_puzzle_extra_source_files(extra_files ${NAME}) get_platform_puzzle_extra_source_files(extra_files ${NAME} FALSE)
if (build_individual_puzzles) if (build_individual_puzzles)
add_executable(${EXENAME} ${NAME}.c ${extra_files}) add_executable(${EXENAME} ${NAME}.c ${extra_files})
@ -173,7 +173,7 @@ function(guiprogram NAME)
"" "" "COMPILE_DEFINITIONS" ${ARGN}) "" "" "COMPILE_DEFINITIONS" ${ARGN})
if(build_gui_programs) if(build_gui_programs)
get_platform_puzzle_extra_source_files(extra_files ${NAME}) get_platform_puzzle_extra_source_files(extra_files ${NAME} TRUE)
add_executable(${NAME} ${OPT_UNPARSED_ARGUMENTS} ${extra_files}) add_executable(${NAME} ${OPT_UNPARSED_ARGUMENTS} ${extra_files})
target_link_libraries(${NAME} target_link_libraries(${NAME}
common ${platform_gui_libs} ${platform_libs}) common ${platform_gui_libs} ${platform_libs})