Fixup cmake dependency stuff
This commit is contained in:
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -46,3 +46,9 @@
|
||||
[submodule "dependencies/libFGL"]
|
||||
path = dependencies/libFGL
|
||||
url = git@github.com:KJNeko/libFGL.git
|
||||
[submodule "dependencies/trantor"]
|
||||
path = dependencies/trantor
|
||||
url = https://github.com/an-tao/trantor.git
|
||||
[submodule "dependencies/dependencies/spdlog"]
|
||||
path = dependencies/dependencies/spdlog
|
||||
url = https://github.com/gabime/spdlog.git
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# /CMakeLists.txt
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
cmake_minimum_required(VERSION 3.28)
|
||||
project(IDHAN LANGUAGES CXX)
|
||||
|
||||
@@ -8,10 +11,7 @@ enable_testing()
|
||||
# Includes fgl_cmake_modules
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libFGL)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(SPDLOG_USE_STD_FORMAT ON)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/dependencies")
|
||||
|
||||
PreSetup()
|
||||
|
||||
@@ -27,11 +27,9 @@ endif ()
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
#IDHANServer/IDHANClient
|
||||
include(spdlog)
|
||||
include(postgres)
|
||||
include(drogon)
|
||||
include(qt6)
|
||||
include(toml)
|
||||
|
||||
add_subdirectory(IDHAN)
|
||||
add_subdirectory(IDHANServer)
|
||||
add_subdirectory(IDHANClient)
|
||||
@@ -40,7 +38,6 @@ add_subdirectory(docs)
|
||||
|
||||
if (BUILD_IDHAN_TESTS)
|
||||
#IDHANTests
|
||||
include(Catch)
|
||||
add_subdirectory(tests)
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Network Concurrent)
|
||||
AddFGLExecutable(HydrusImporter ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
target_link_libraries(HydrusImporter PUBLIC Qt6::Core Qt6::Concurrent IDHANClient sqlite3 spdlog)
|
||||
@@ -1,5 +1,2 @@
|
||||
|
||||
|
||||
|
||||
AddFGLLibrary(IDHAN OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
target_link_libraries(IDHAN libFGL)
|
||||
@@ -1,6 +1,8 @@
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Network Concurrent)
|
||||
|
||||
AddFGLLibrary(IDHANClient SHARED ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
target_include_directories(IDHANClient PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/idhan)
|
||||
target_link_libraries(IDHANClient PUBLIC IDHAN)
|
||||
|
||||
@@ -20,8 +20,18 @@ add_custom_command(
|
||||
COMMENT "${CMAKE_CURRENT_SOURCE_DIR}/modules/GenerateMigrations.cmake: Generating doMigration.cpp")
|
||||
|
||||
|
||||
target_link_libraries(IDHANServer PUBLIC spdlog fmt drogon)
|
||||
target_link_libraries(IDHANServer PRIVATE pqxx sqlite3 Qt6::Core tomlplusplus::tomlplusplus)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||
find_package(spdlog REQUIRED)
|
||||
add_definitions(-DSPDLOG_USE_STD_FORMAT)
|
||||
find_package(drogon REQUIRED)
|
||||
|
||||
if (spdlog_FOUND)
|
||||
else ()
|
||||
message(SEND_ERROR "Spdlog not found")
|
||||
endif ()
|
||||
|
||||
target_link_libraries(IDHANServer PUBLIC spdlog drogon)
|
||||
target_link_libraries(IDHANServer PRIVATE pqxx Qt6::Core tomlplusplus::tomlplusplus)
|
||||
target_link_libraries(IDHANServer PRIVATE IDHAN)
|
||||
|
||||
target_link_libraries(IDHANServer PRIVATE IDHAN)
|
||||
|
||||
1
dependencies/Catch.cmake
vendored
1
dependencies/Catch.cmake
vendored
@@ -1 +0,0 @@
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/Catch2)
|
||||
1
dependencies/FindCatch2.cmake
vendored
Normal file
1
dependencies/FindCatch2.cmake
vendored
Normal file
@@ -0,0 +1 @@
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
|
||||
21
dependencies/Finddrogon.cmake
vendored
Normal file
21
dependencies/Finddrogon.cmake
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
set(BUILD_MYSQL OFF)
|
||||
set(BUILD_SQLITE OFF)
|
||||
set(BUILD_REDIS OFF)
|
||||
set(BUILD_ORM ON)
|
||||
set(BUILD_EXAMPLES OFF)
|
||||
set(BUILD_CTL OFF)
|
||||
|
||||
set(USE_MYSQL OFF)
|
||||
set(USE_SQLITE3 OFF)
|
||||
|
||||
set(USE_SPDLOG ON)
|
||||
|
||||
set(BUILD_TESTING ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
set(USE_SUBMODULE OFF)
|
||||
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/drogon ${CMAKE_CURRENT_BINARY_DIR}/drogon)
|
||||
set(drogon_FOUND TRUE)
|
||||
21
dependencies/TrantorConfig.cmake
vendored
Normal file
21
dependencies/TrantorConfig.cmake
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
|
||||
if (NOT TARGET Trantor::Trantor)
|
||||
|
||||
set(USE_SPDLOG ON)
|
||||
|
||||
# Trantor apparently uses a really shitty install thing from cmake.
|
||||
# There is no way to disable it, So we do this instead. What. The. Fuck?
|
||||
macro(install)
|
||||
endmacro()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/trantor ${CMAKE_CURRENT_BINARY_DIR}/trantor)
|
||||
set(Trantor_FOUND TRUE)
|
||||
|
||||
set_target_properties(trantor PROPERTIES CXX_STANDARD 23)
|
||||
|
||||
add_library(Trantor::Trantor ALIAS trantor)
|
||||
|
||||
endif ()
|
||||
12
dependencies/drogon.cmake
vendored
12
dependencies/drogon.cmake
vendored
@@ -1,12 +0,0 @@
|
||||
|
||||
set(BUILD_MYSQL OFF)
|
||||
set(BUILD_SQLITE OFF)
|
||||
set(BUILD_REDIS OFF)
|
||||
set(BUILD_ORM ON)
|
||||
set(BUILD_EXAMPLES OFF)
|
||||
set(BUILD_CTL OFF)
|
||||
|
||||
set(USE_MYSQL OFF)
|
||||
set(USE_SQLITE3 OFF)
|
||||
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/drogon)
|
||||
8
dependencies/qt6.cmake
vendored
8
dependencies/qt6.cmake
vendored
@@ -1,8 +0,0 @@
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
#if (BUILD_HYDRUS_IMPORTER ON)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Network Concurrent)
|
||||
#else ()
|
||||
# find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||
#endif ()
|
||||
3
dependencies/spdlog.cmake
vendored
3
dependencies/spdlog.cmake
vendored
@@ -1,3 +0,0 @@
|
||||
|
||||
set(SPDLOG_USE_STD_FORMAT ON)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/spdlog)
|
||||
9
dependencies/spdlogConfig.cmake
vendored
Normal file
9
dependencies/spdlogConfig.cmake
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
if (NOT TARGET spdlog)
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(SPDLOG_USE_STD_FORMAT ON)
|
||||
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/spdlog ${CMAKE_CURRENT_BINARY_DIR}/spdlog)
|
||||
endif ()
|
||||
@@ -3,20 +3,26 @@
|
||||
if (BUILD_IDHAN_DOCS)
|
||||
find_package(Doxygen)
|
||||
|
||||
if (doxygen_FOUND)
|
||||
|
||||
set(DOXYGEN_OUT ${CMAKE_CURRENT_SOURCE_DIR}/out)
|
||||
|
||||
add_custom_target(GenerateDoxygenDocs DEPENDS ${DOXYGEN_OUT})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOXYGEN_OUT}
|
||||
COMMAND ${DOXYGEN_EXECUTABLE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
COMMENT "Building doxygen docs"
|
||||
)
|
||||
|
||||
add_dependencies(IDHANServer GenerateDoxygenDocs)
|
||||
|
||||
endif (doxygen_FOUND)
|
||||
|
||||
set(API_YAML ${CMAKE_CURRENT_SOURCE_DIR}/api)
|
||||
set(API_YAML_OUT ${CMAKE_BINARY_DIR}/bin/pages/api)
|
||||
set(DOXYGEN_OUT ${CMAKE_CURRENT_SOURCE_DIR}/out)
|
||||
|
||||
add_custom_target(IDHANDocs DEPENDS ${API_YAML_OUT} ${DOXYGEN_OUT})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOXYGEN_OUT}
|
||||
COMMAND ${DOXYGEN_EXECUTABLE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
COMMENT "Building doxygen docs"
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE YAML_FILES
|
||||
file(GLOB_RECURSE YAML_FILES CONFIGURE_DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/api/*.yaml"
|
||||
)
|
||||
|
||||
@@ -27,5 +33,8 @@ if (BUILD_IDHAN_DOCS)
|
||||
COMMENT "Copying API docs"
|
||||
)
|
||||
|
||||
add_dependencies(IDHANServer IDHANDocs)
|
||||
|
||||
add_custom_target(GenerateAPIYaml DEPENDS ${API_YAML_OUT})
|
||||
|
||||
add_dependencies(IDHANServer GenerateAPIYaml)
|
||||
endif ()
|
||||
|
||||
Reference in New Issue
Block a user