# HG changeset patch # User glx22 # Date 2023-08-14 17:25:26 # Node ID f5053946e022d7fe04b2e269f14345aa1ba950d3 # Parent 21baf162bd57344d20a9e553f847747d63b85620 Codechange: [CMake] reduce code duplication diff --git a/cmake/SourceList.cmake b/cmake/SourceList.cmake --- a/cmake/SourceList.cmake +++ b/cmake/SourceList.cmake @@ -1,12 +1,4 @@ -# Add a file to be compiled. -# -# add_files([file1 ...] CONDITION condition [condition ...]) -# -# CONDITION is a complete statement that can be evaluated with if(). -# If it evaluates true, the source files will be added; otherwise not. -# For example: ADD_IF SDL_FOUND AND Allegro_FOUND -# -function(add_files) +function(_add_files_tgt tgt) cmake_parse_arguments(PARAM "" "" "CONDITION" ${ARGN}) set(PARAM_FILES "${PARAM_UNPARSED_ARGUMENTS}") @@ -21,6 +13,18 @@ function(add_files) endforeach() endfunction() +# Add a file to be compiled. +# +# add_files([file1 ...] CONDITION condition [condition ...]) +# +# CONDITION is a complete statement that can be evaluated with if(). +# If it evaluates true, the source files will be added; otherwise not. +# For example: ADD_IF SDL_FOUND AND Allegro_FOUND +# +function(add_files) + _add_files_tgt(openttd_lib ${ARGV}) +endfunction() + # Add a test file to be compiled. # # add_test_files([file1 ...] CONDITION condition [condition ...]) @@ -30,18 +34,7 @@ endfunction() # For example: ADD_IF SDL_FOUND AND Allegro_FOUND # function(add_test_files) - cmake_parse_arguments(PARAM "" "" "CONDITION" ${ARGN}) - set(PARAM_FILES "${PARAM_UNPARSED_ARGUMENTS}") - - if(PARAM_CONDITION) - if(NOT (${PARAM_CONDITION})) - return() - endif() - endif() - - foreach(FILE IN LISTS PARAM_FILES) - target_sources(openttd_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) - endforeach() + _add_files_tgt(openttd_test ${ARGV}) endfunction() # This function works around an 'issue' with CMake, where