Changeset - r27854:f5053946e022
[Not reviewed]
master
0 1 0
glx22 - 10 months ago 2023-08-14 17:25:26
glx@openttd.org
Codechange: [CMake] reduce code duplication
1 file changed with 14 insertions and 21 deletions:
0 comments (0 inline, 0 general)
cmake/SourceList.cmake
Show inline comments
 
# 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
0 comments (0 inline, 0 general)