Switch to CPM for dependency management
continuous-integration/drone/push Build was killed
Details
continuous-integration/drone/push Build was killed
Details
This commit is contained in:
parent
af450dceb4
commit
537ae93294
|
@ -1,7 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
include(CheckIPOSupported)
|
include(CheckIPOSupported)
|
||||||
project(pkmnLib)
|
include(CPM.cmake)
|
||||||
|
|
||||||
|
project(pkmnLib)
|
||||||
|
|
||||||
# We like new stuff, so set the c++ standard to c++20.
|
# We like new stuff, so set the c++ standard to c++20.
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
@ -13,11 +14,6 @@ option(TESTS "Whether the test executable should be build as well." OFF)
|
||||||
option(STATICC "Whether gcc and stdc++ should be linked statically to the library." OFF)
|
option(STATICC "Whether gcc and stdc++ should be linked statically to the library." OFF)
|
||||||
set(SCRIPT_PROVIDER "angelscript" CACHE STRING "Which script provider to use.")
|
set(SCRIPT_PROVIDER "angelscript" CACHE STRING "Which script provider to use.")
|
||||||
set(LEVEL_SIZE "8" CACHE STRING "Number of bits to store the level as. Can be 8")
|
set(LEVEL_SIZE "8" CACHE STRING "Number of bits to store the level as. Can be 8")
|
||||||
include(CMakeLists.txt.creaturelib.in)
|
|
||||||
include(CMakeLists.txt.angelscript.in)
|
|
||||||
|
|
||||||
include_creaturelib()
|
|
||||||
include_angelscript()
|
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
add_compile_options(-fconcepts)
|
add_compile_options(-fconcepts)
|
||||||
|
@ -27,6 +23,65 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
add_link_options(-fuse-ld=lld)
|
add_link_options(-fuse-ld=lld)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
execute_process(COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME Arbutils
|
||||||
|
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/Arbutils.git
|
||||||
|
GIT_TAG master
|
||||||
|
OPTIONS
|
||||||
|
"SHARED=${SHARED}"
|
||||||
|
"WINDOWS=${WINDOWS}"
|
||||||
|
"STATICC=${STATICC}"
|
||||||
|
)
|
||||||
|
execute_process(COMMAND ln -sf ${Arbutils_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/include/Arbutils)
|
||||||
|
|
||||||
|
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME CreatureLib
|
||||||
|
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/CreatureLib.git
|
||||||
|
GIT_TAG master
|
||||||
|
OPTIONS
|
||||||
|
"SHARED=${SHARED}"
|
||||||
|
"WINDOWS=${WINDOWS}"
|
||||||
|
"STATICC=${STATICC}"
|
||||||
|
)
|
||||||
|
execute_process(COMMAND ln -sf ${CreatureLib_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/include/CreatureLib)
|
||||||
|
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME CreatureLib
|
||||||
|
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/CreatureLib.git
|
||||||
|
GIT_TAG master
|
||||||
|
OPTIONS
|
||||||
|
"SHARED=${SHARED}"
|
||||||
|
"WINDOWS=${WINDOWS}"
|
||||||
|
"STATICC=${STATICC}"
|
||||||
|
)
|
||||||
|
execute_process(COMMAND ln -sf ${CreatureLib_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/include/CreatureLib)
|
||||||
|
|
||||||
|
if (SCRIPT_PROVIDER STREQUAL "angelscript")
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME Angelscript
|
||||||
|
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/Angelscript.git
|
||||||
|
GIT_TAG master
|
||||||
|
DOWNLOAD_ONLY YES
|
||||||
|
)
|
||||||
|
|
||||||
|
if (Angelscript_ADDED)
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . -B ${Angelscript_BINARY_DIR}
|
||||||
|
-DBUILD_SHARED_LIBS=${SHARED} -DMSVC=${WINDOWS} -DLINK_STD_STATICALLY=${STATICC}
|
||||||
|
RESULT_VARIABLE result
|
||||||
|
WORKING_DIRECTORY ${Angelscript_SOURCE_DIR}/angelscript/projects/cmake)
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} --build ${Angelscript_BINARY_DIR}
|
||||||
|
RESULT_VARIABLE result
|
||||||
|
WORKING_DIRECTORY ${Angelscript_SOURCE_DIR}/angelscript/projects/cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
include_directories(${Angelscript_SOURCE_DIR}/angelscript/include)
|
||||||
|
link_directories(${Angelscript_BINARY_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
if (WINDOWS)
|
if (WINDOWS)
|
||||||
SET(CMAKE_SYSTEM_NAME Windows)
|
SET(CMAKE_SYSTEM_NAME Windows)
|
||||||
ADD_DEFINITIONS(-D WINDOWS=1)
|
ADD_DEFINITIONS(-D WINDOWS=1)
|
||||||
|
@ -142,7 +197,7 @@ endif ()
|
||||||
if (STATICC)
|
if (STATICC)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
|
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
|
||||||
message(STATUS "Linking C library statically")
|
message(STATUS "Linking C library statically")
|
||||||
set(_LINKS ${_LINKS} -Wl,-Bstatic -lm -lgcc -lstdc++ -Wl,-Bdynamic)
|
set(_LINKS ${_LINKS} -static-libstdc++ -Wl,-Bstatic -lm -lgcc -lstdc++ -Wl,-Bdynamic)
|
||||||
SET(_TESTLINKS ${_TESTLINKS} -Wl,-Bstatic -lm -lgcc -lstdc++ -Wl,-Bdynamic)
|
SET(_TESTLINKS ${_TESTLINKS} -Wl,-Bstatic -lm -lgcc -lstdc++ -Wl,-Bdynamic)
|
||||||
else ()
|
else ()
|
||||||
SET(_LINKS ${_LINKS} -Wl,--whole-archive -Wl,--no-whole-archive)
|
SET(_LINKS ${_LINKS} -Wl,--whole-archive -Wl,--no-whole-archive)
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
cmake_minimum_required(VERSION 2.8.12)
|
|
||||||
|
|
||||||
project(pkmnLib NONE)
|
|
||||||
|
|
||||||
include(ExternalProject)
|
|
||||||
|
|
||||||
ExternalProject_Add(AngelscriptProj
|
|
||||||
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/Angelscript.git
|
|
||||||
GIT_TAG master
|
|
||||||
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/Angelscript"
|
|
||||||
CONFIGURE_COMMAND ""
|
|
||||||
BUILD_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
TEST_COMMAND ""
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
function(include_angelscript)
|
|
||||||
configure_file(CMakeLists.txt.angelscript.in Angelscript/download/CMakeLists.txt)
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Angelscript/download)
|
|
||||||
if (result)
|
|
||||||
message(FATAL_ERROR "CMake step for angelscript failed: ${result}")
|
|
||||||
endif ()
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Angelscript/download)
|
|
||||||
if (result)
|
|
||||||
message(FATAL_ERROR "Build step for angelscript failed: ${result}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
SET(BUILD_SHARED_LIBS ${SHARED})
|
|
||||||
SET(LINK_STD_STATICALLY ${STATICC})
|
|
||||||
SET(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
|
|
||||||
if (WINDOWS)
|
|
||||||
SET(MSVC 1)
|
|
||||||
endif()
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/Angelscript/src/AngelscriptProj/angelscript/projects/cmake
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/Angelscript/bin
|
|
||||||
EXCLUDE_FROM_ALL)
|
|
||||||
|
|
||||||
if (WINDOWS)
|
|
||||||
set_target_properties(angelscript PROPERTIES SUFFIX ".dll")
|
|
||||||
endif (WINDOWS)
|
|
||||||
|
|
||||||
execute_process(COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/Angelscript/include)
|
|
||||||
include_directories(SYSTEM ${CMAKE_CURRENT_BINARY_DIR}/Angelscript/src/AngelscriptProj/angelscript/include)
|
|
||||||
endfunction()
|
|
|
@ -1,43 +0,0 @@
|
||||||
cmake_minimum_required(VERSION 2.8.12)
|
|
||||||
|
|
||||||
project(pkmnLib NONE)
|
|
||||||
|
|
||||||
include(ExternalProject)
|
|
||||||
ExternalProject_Add(CreatureLibProj
|
|
||||||
GIT_REPOSITORY https://git.p-epsilon.com/Deukhoofd/CreatureLib
|
|
||||||
GIT_TAG master
|
|
||||||
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/CreatureLib"
|
|
||||||
CONFIGURE_COMMAND ""
|
|
||||||
BUILD_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
TEST_COMMAND ""
|
|
||||||
CMAKE_ARGS "-DSHARED=${SHARED} -DWINDOWS=${WINDOWS} -DSTATICC=${STATICC}"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function(include_creaturelib)
|
|
||||||
configure_file(CMakeLists.txt.creaturelib.in CreatureLib/download/CMakeLists.txt)
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/download)
|
|
||||||
if (result)
|
|
||||||
message(FATAL_ERROR "CMake step for arbutils failed: ${result}")
|
|
||||||
endif ()
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/download)
|
|
||||||
if (result)
|
|
||||||
message(FATAL_ERROR "Build step for arbutils failed: ${result}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/src/CreatureLibProj
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/bin
|
|
||||||
EXCLUDE_FROM_ALL)
|
|
||||||
|
|
||||||
execute_process(COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/include)
|
|
||||||
execute_process(COMMAND ln -s ${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/src/CreatureLibProj/src
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/include/CreatureLib)
|
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/bin/Arbutils/include ${CMAKE_CURRENT_BINARY_DIR}/CreatureLib/include)
|
|
||||||
endfunction()
|
|
Loading…
Reference in New Issue