Clean up some compiling systems

This commit is contained in:
2025-10-21 22:06:40 -04:00
parent a590af8b55
commit af88247e82
3 changed files with 71 additions and 61 deletions

View File

@@ -8,6 +8,11 @@ project(IDHAN LANGUAGES CXX)
enable_testing()
find_program(CCACHE_FOUND ccache)
if (CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
endif ()
# Includes fgl_cmake_modules
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libFGL)
@@ -27,7 +32,7 @@ option(BUILD_IDHAN_TOOLS "Builds all tools" OFF)
option(BUILD_HYDRUS_IMPORTER "Builds the hydrus importer" ON)
if (BUILD_HYDRUS_IMPORTER)
set(BUILD_IDHAN_CLIENT ON)
set(BUILD_IDHAN_CLIENT ON)
endif ()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@@ -38,87 +43,87 @@ include(toml)
add_subdirectory(IDHAN)
if (BUILD_IDHAN_SERVER)
add_subdirectory(IDHANMigration)
add_subdirectory(IDHANModules)
add_subdirectory(IDHANServer)
add_subdirectory(IDHANMigration)
add_subdirectory(IDHANModules)
add_subdirectory(IDHANServer)
endif ()
if (BUILD_IDHAN_CLIENT)
add_subdirectory(IDHANClient)
add_subdirectory(IDHANClient)
endif ()
if (BUILD_IDHAN_TOOLS)
add_subdirectory(tools/TagEditor)
add_subdirectory(tools/TagEditor)
endif ()
if (BUILD_IDHAN_DOCS)
add_subdirectory(docs)
add_subdirectory(docs)
endif ()
if (BUILD_IDHAN_WEBUI)
include(ExternalProject)
include(ExternalProject)
if (NOT DEFINED QT_WASM)
message(FATAL_ERROR "You must define QT_WASM during cmake config")
endif ()
if (NOT DEFINED QT_WASM)
message(FATAL_ERROR "You must define QT_WASM during cmake config")
endif ()
set(EMSDK ${QT_WASM}/emsdk)
set(EMSDK_TOOLCHAIN)
set(EMSDK ${QT_WASM}/emsdk)
set(EMSDK_TOOLCHAIN)
find_program(QTCMAKE_EXECUTABLE qt-cmake
PATHS "${QT_WASM}/bin"
NO_DEFAULT_PATH)
find_program(QTCMAKE_EXECUTABLE qt-cmake
PATHS "${QT_WASM}/bin"
NO_DEFAULT_PATH)
if (NOT QTCMAKE_EXECUTABLE)
message(FATAL_ERROR "qt-cmake not found for wasm")
endif ()
if (NOT QTCMAKE_EXECUTABLE)
message(FATAL_ERROR "qt-cmake not found for wasm")
endif ()
set(WEBUI_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/IDHANWebUI)
set(WEBUI_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/IDHANWebUI)
set(WEBUI_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/IDHANWebUI)
set(WEBUI_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/IDHANWebUI)
# In order for this to work you need to set the env variables in /opt/qt6-wasm/qtwasm_env.sh
# The following is a copy of that file
# #/opt/qt6-wasm/emsdk/emsdk activate 3.1.70
#
# # load emsdk environment
# # EM_CACHE issue: https://github.com/emscripten-core/emsdk/issues/535
# EM_CACHE_PATH=~/.cache/qt6-wasm
# export EM_CACHE=$EM_CACHE_PATH
# source /opt/qt6-wasm/emsdk/emsdk_env.sh
# export EM_CACHE=$EM_CACHE_PATH
# echo "EM_CACHE (override) = $EM_CACHE"
#
# # Export Qt6 WebAssembly bin Path
# echo $PATH | grep -w "/opt/qt6-wasm/bin" > /dev/null
# if [ $? -ne 0 ]; then
# export PATH=/opt/qt6-wasm/bin:$PATH
# fi
# In order for this to work you need to set the env variables in /opt/qt6-wasm/qtwasm_env.sh
# The following is a copy of that file
# #/opt/qt6-wasm/emsdk/emsdk activate 3.1.70
#
# # load emsdk environment
# # EM_CACHE issue: https://github.com/emscripten-core/emsdk/issues/535
# EM_CACHE_PATH=~/.cache/qt6-wasm
# export EM_CACHE=$EM_CACHE_PATH
# source /opt/qt6-wasm/emsdk/emsdk_env.sh
# export EM_CACHE=$EM_CACHE_PATH
# echo "EM_CACHE (override) = $EM_CACHE"
#
# # Export Qt6 WebAssembly bin Path
# echo $PATH | grep -w "/opt/qt6-wasm/bin" > /dev/null
# if [ $? -ne 0 ]; then
# export PATH=/opt/qt6-wasm/bin:$PATH
# fi
ExternalProject_Add(
IDHANWebUI_WASM
SOURCE_DIR ${WEBUI_SOURCE_DIR}
BINARY_DIR ${WEBUI_BUILD_DIR}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-S ${WEBUI_SOURCE_DIR}
-B ${WEBUI_BUILD_DIR}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DWASM_OUT_DIR=${CMAKE_CURRENT_BINARY_DIR}/bin/static
BUILD_COMMAND ${CMAKE_COMMAND} --build ${WEBUI_BUILD_DIR}
INSTALL_COMMAND "" # Needed or this errors
BUILD_ALWAYS YES
)
ExternalProject_Add(
IDHANWebUI_WASM
SOURCE_DIR ${WEBUI_SOURCE_DIR}
BINARY_DIR ${WEBUI_BUILD_DIR}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-S ${WEBUI_SOURCE_DIR}
-B ${WEBUI_BUILD_DIR}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DWASM_OUT_DIR=${CMAKE_CURRENT_BINARY_DIR}/bin/static
BUILD_COMMAND ${CMAKE_COMMAND} --build ${WEBUI_BUILD_DIR}
INSTALL_COMMAND "" # Needed or this errors
BUILD_ALWAYS YES
)
add_custom_target(IDHANWebUIFiles DEPENDS ${WEBUI_FILES_OUTPUT})
add_dependencies(IDHANServer IDHANWebUI_WASM IDHANWebUIFiles)
add_custom_target(IDHANWebUIFiles DEPENDS ${WEBUI_FILES_OUTPUT})
add_dependencies(IDHANServer IDHANWebUI_WASM IDHANWebUIFiles)
endif ()
if (BUILD_IDHAN_TESTS)
#IDHANTests
add_subdirectory(tests)
#IDHANTests
add_subdirectory(tests)
endif ()
if (BUILD_HYDRUS_IMPORTER)
#HydrusImporter
include(sqlite3)
add_subdirectory(HydrusImporter)
#HydrusImporter
include(sqlite3)
add_subdirectory(HydrusImporter)
endif ()
PostSetup()

View File

@@ -11,7 +11,8 @@ RUN DEBIAN_FRONTNED=noninteractive apt-get install -y \
git \
pkg-config \
gcc-14 \
g++-14
g++-14 \
ccache
# Server build dependencies
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \
@@ -51,7 +52,9 @@ RUN cmake -S . -B build \
-DBUILD_IDHAN_CLIENT=OFF \
-DBUILD_IDHAN_TOOLS=OFF
RUN cmake --build build --target IDHANServer -j$(nproc)
ENV CCACHE_DIR=/root/.ccache
RUN --mount=type=cache,target=/root/.ccache \
cmake --build build --target IDHANServer -j$(nproc)
# Stage 2: Runtime environment
FROM ubuntu:24.04

View File

@@ -8,8 +8,10 @@ services:
POSTGRES_DB: idhan-db
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U idhan"]
test: [ "CMD-SHELL", "pg_isready -U idhan" ]
interval: 10s
timeout: 5s
retries: 5