Skip to content

Commit

Permalink
Use FetchContent to load Allegro lib.
Browse files Browse the repository at this point in the history
  • Loading branch information
przemek83 committed Sep 6, 2024
1 parent df35597 commit e336283
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 36 deletions.
39 changes: 20 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,20 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(THIRD_PARTY_LIBS allegro)
foreach(file_i ${THIRD_PARTY_LIBS})
configure_file(CMakeLists.txt.${file_i} ${file_i}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} .
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${file_i})
execute_process(COMMAND ${CMAKE_COMMAND} --build .
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${file_i} )
option(CODE_COVERAGE "Collect coverage" OFF)

include_directories(${CMAKE_BINARY_DIR}/${file_i}/install/include)
link_directories(${CMAKE_BINARY_DIR}/${file_i}/install/lib)
endforeach(file_i)
if(CODE_COVERAGE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 --coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 --coverage")
endif()

file(GLOB_RECURSE DLLS "${CMAKE_BINARY_DIR}/*.dll" )
file(COPY ${DLLS} DESTINATION ${CMAKE_BINARY_DIR})
file(COPY ${DLLS} DESTINATION "${CMAKE_BINARY_DIR}/test")
include(CMakeLists.txt.allegro)
set(ALLEGRO_SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/allegro-src")
set(ALLEGRO_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/allegro-build")

# file(GLOB_RECURSE DLLS "${CMAKE_BINARY_DIR}/*.dll" )
# file(COPY ${DLLS} DESTINATION ${CMAKE_BINARY_DIR})
# file(COPY ${DLLS} DESTINATION "${CMAKE_BINARY_DIR}/test")
file(COPY image DESTINATION ${CMAKE_BINARY_DIR})
file(COPY levels DESTINATION ${CMAKE_BINARY_DIR})

Expand Down Expand Up @@ -92,14 +90,17 @@ set(${PROJECT_NAME}_SOURCES
)

add_library (${PROJECT_NAME}-lib STATIC ${${PROJECT_NAME}_SOURCES})
target_link_libraries(${PROJECT_NAME}-lib allegro allegro_image allegro_font allegro_primitives)
target_include_directories(${PROJECT_NAME}-lib PUBLIC
${ALLEGRO_SOURCE_DIR}/include
${ALLEGRO_SOURCE_DIR}/addons/font
${ALLEGRO_SOURCE_DIR}/addons/image
${ALLEGRO_SOURCE_DIR}/addons/primitives
${ALLEGRO_BINARY_DIR}/include
)

add_executable(${CMAKE_PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} stdc++fs ${PROJECT_NAME}-lib
optimized allegro debug allegro-debug
optimized allegro_image debug allegro_image-debug
optimized allegro_font debug allegro_font-debug
optimized allegro_primitives debug allegro_primitives-debug
)
target_link_libraries(${PROJECT_NAME} stdc++fs ${PROJECT_NAME}-lib)

enable_testing()
Include(Tests.cmake)
Expand Down
18 changes: 7 additions & 11 deletions CMakeLists.txt.allegro
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
cmake_minimum_required(VERSION 3.8)
Include(FetchContent)

include(ExternalProject)

project(allegro NONE)

ExternalProject_Add(allegro
PREFIX allegro
GIT_REPOSITORY https://github.com/liballeg/allegro5.git
GIT_TAG 5.2.6.0
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/allegro/install
FetchContent_Declare(
allegro
GIT_REPOSITORY https://github.com/liballeg/allegro5.git
GIT_TAG 5.2.9.1
)

FetchContent_MakeAvailable(allegro)
7 changes: 1 addition & 6 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ set(${PROJECT_TEST}_SOURCES
)

add_executable(${PROJECT_TEST} ${${PROJECT_TEST}_SOURCES})
target_link_libraries(${PROJECT_TEST} PRIVATE Catch2::Catch2WithMain
${PROJECT_NAME}-lib optimized allegro debug allegro-debug
optimized allegro_image debug allegro_image-debug
optimized allegro_font debug allegro_font-debug
optimized allegro_primitives debug allegro_primitives-debug
)
target_link_libraries(${PROJECT_TEST} PRIVATE Catch2::Catch2WithMain ${PROJECT_NAME}-lib)

include(CTest)
include(Catch)
Expand Down

0 comments on commit e336283

Please sign in to comment.