Files
PixelDefense/engine/libs/flecs/cmake/target_default_compile_functions.cmake

49 lines
1.5 KiB
CMake

macro(list_targets RESULT)
file(GLOB_RECURSE FILES LIST_DIRECTORIES true RELATIVE ${CUR_DIR} *)
set(TARGET_LIST "")
foreach (FILE ${FILES})
if (IS_DIRECTORY ${CUR_DIR}/${FILE})
if (EXISTS ${CUR_DIR}/${FILE}/project.json)
message(STATUS "Found example ${FILE}")
list(APPEND TARGET_LIST ${FILE})
endif()
endif ()
endforeach ()
set(${RESULT} ${TARGET_LIST})
endmacro()
macro(create_target TARGET CONFIG)
if (CONFIG STREQUAL "")
set(TARGET_POSTFIX "")
else()
set(TARGET_POSTFIX "_${CONFIG}")
endif()
set(TARGET_NAME "${TARGET}${TARGET_POSTFIX}")
string(REPLACE "/" "_" TARGET_NAME "${TARGET_NAME}")
string(REPLACE "\\" "_" TARGET_NAME "${TARGET_NAME}")
set(TARGET_DIR "${CUR_DIR}/${TARGET}")
file(GLOB SRC ${TARGET_DIR}/src/*.c*)
add_executable(${TARGET_NAME} ${SRC})
target_include_directories(${TARGET_NAME} PUBLIC ${FLECS_DIR}/include)
target_include_directories(${TARGET_NAME} PUBLIC ${TARGET_DIR}/include)
target_link_libraries(${TARGET_NAME} flecs${TARGET_POSTFIX})
endmacro()
function(create_target_c TARGET CONFIG)
create_target("${TARGET}" "${CONFIG}")
target_default_compile_options_c(${TARGET_NAME})
target_default_compile_warnings_c(${TARGET_NAME})
endfunction()
function(create_target_cxx TARGET CONFIG)
create_target("${TARGET}" "${CONFIG}")
target_default_compile_options_cxx(${TARGET_NAME})
target_default_compile_warnings_cxx(${TARGET_NAME})
endfunction()