updated build system

This commit is contained in:
2024-08-02 10:53:11 -05:00
parent f4a3c52428
commit 098d172f40
104 changed files with 3725 additions and 1635 deletions

View File

@ -26,21 +26,7 @@ function(set_common_target_options name)
endif()
endfunction(set_common_target_options)
function(add_project_executable name dependencies libraries)
file(GLOB_RECURSE headers
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hh
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hxx
)
file(GLOB_RECURSE sources
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cc
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cxx
)
function(add_project_executable2 name dependencies libraries headers sources)
if (PROJECT_WINDOWS_VERSION_RC)
list(APPEND sources ${PROJECT_WINDOWS_VERSION_RC})
endif()
@ -62,6 +48,28 @@ function(add_project_executable name dependencies libraries)
endif()
target_link_libraries(${name} PRIVATE ${libraries})
if(PROJECT_ENABLE_SDL AND PROJECT_IS_MINGW)
target_link_libraries(${name} PRIVATE SDL2::SDL2main)
endif ()
endfunction(add_project_executable2)
function(add_project_executable name dependencies libraries)
file(GLOB_RECURSE headers
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hh
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hxx
)
file(GLOB_RECURSE sources
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cc
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cxx
)
add_project_executable2(${name} "${dependencies}" "${libraries}" "${headers}" "${sources}")
endfunction(add_project_executable)
function(add_project_library name dependencies libraries additional_sources)
@ -96,7 +104,24 @@ function(add_project_test_executable name dependencies libraries)
find_package(GTest ${GTEST_VERSION} REQUIRED)
enable_testing()
add_project_executable(${name} "${dependencies}" "${libraries}")
file(GLOB_RECURSE headers
${PROJECT_3RD_PARTY_DIR}/test/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hh
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/${name}/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/${name}/include/${name}/include/*.hxx
)
file(GLOB_RECURSE sources
${PROJECT_3RD_PARTY_DIR}/test/src/*.cpp
${additional_sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cc
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cxx
)
add_project_executable2(${name} "${dependencies}" "${libraries}" "${headers}" "${sources}")
target_compile_definitions(${name} PRIVATE -DPROJECT_TESTING)
@ -104,6 +129,10 @@ function(add_project_test_executable name dependencies libraries)
${GTEST_INCLUDE_DIRS}
)
target_include_directories(${name} AFTER PRIVATE
${PROJECT_3RD_PARTY_DIR}/test/include
)
target_link_libraries(${name} PRIVATE
GTest::gtest
GTest::gmock