Clean up some compiling systems
This commit is contained in:
121
CMakeLists.txt
121
CMakeLists.txt
@@ -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()
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user