Fixup cmake dependency stuff

This commit is contained in:
2025-04-16 21:10:33 -04:00
parent fe2c67b6f2
commit de97c8faa7
15 changed files with 100 additions and 51 deletions

6
.gitmodules vendored
View File

@@ -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

View File

@@ -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 ()

View File

@@ -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)

View File

@@ -1,5 +1,2 @@
AddFGLLibrary(IDHAN OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_link_libraries(IDHAN libFGL)

View File

@@ -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)

View File

@@ -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)

View File

@@ -1 +0,0 @@
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/Catch2)

1
dependencies/FindCatch2.cmake vendored Normal file
View File

@@ -0,0 +1 @@
add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)

21
dependencies/Finddrogon.cmake vendored Normal file
View 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
View 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 ()

View File

@@ -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)

View File

@@ -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 ()

View File

@@ -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
View 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 ()

View File

@@ -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 ()