Loading Dockerfile +1 −2 Original line number Diff line number Diff line Loading @@ -81,8 +81,7 @@ RUN git clone https://github.com/Tuxist/CPP-SMTPClient-library.git && \ ninja -C CPP-SMTPClient-library/build install RUN git clone https://tuxist.de/git/jan.koester/blogi.git && \ cmake -B blogi/build -S blogi -G Ninja \ -DBUILD_EDITOR=ON \ cmake -B blogi/build -S blogi -G Ninja -DBUILD_EDITOR=ON \ ninja -C blogi/build install # ========================================== Loading cmake/FindNodeJS.cmake 0 → 100644 +32 −0 Original line number Diff line number Diff line # cmake/FindNodeJS.cmake find_path(NodeJS_INCLUDE_DIR NAMES node.h PATH_SUFFIXES node include/node ) find_library(NodeJS_LIBRARY NAMES node libnode ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(NodeJS REQUIRED_VARS NodeJS_LIBRARY NodeJS_INCLUDE_DIR ) if(NodeJS_FOUND AND NOT TARGET NodeJS::NodeJS) add_library(NodeJS::NodeJS SHARED IMPORTED) set_target_properties(NodeJS::NodeJS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${NodeJS_INCLUDE_DIR}" IMPORTED_LOCATION "${NodeJS_LIBRARY}" ) # Für Alpine/Linux den Whole-Archive Linker-Flag direkt an das Target heften if(CMAKE_SYSTEM_NAME MATCHES "Linux") set_target_properties(NodeJS::NodeJS PROPERTIES INTERFACE_LINK_LIBRARIES "-Wl,--no-as-needed;-Wl,--whole-archive;${NodeJS_LIBRARY};-Wl,--no-whole-archive" ) endif() endif() mark_as_advanced(NodeJS_INCLUDE_DIR NodeJS_LIBRARY) editor/CMakeLists.txt +9 −28 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ if(NOT TARGET blogidev) find_package(smtpclient REQUIRED) find_package(Brotli REQUIRED) find_package(paritypp REQUIRED) find_package(NodeJS REQUIRED) add_definitions(-D${CMAKE_HOST_SYSTEM_NAME} -DWIN32_LEAN_AND_MEAN) endif() Loading Loading @@ -51,36 +51,16 @@ if(NOT LIBNODE_INCLUDE_DIR OR NOT LIBNODE_LIBRARY) message(FATAL_ERROR "libnode is required but was not found. Install libnode headers/library and reconfigure.") endif() find_path(LIBNODE_INCLUDE_DIR NAMES node.h PATH_SUFFIXES node include/node) find_library(LIBNODE_LIBRARY NAMES node libnode) if(NOT LIBNODE_INCLUDE_DIR OR NOT LIBNODE_LIBRARY) message(FATAL_ERROR "libnode is required but was not found. Install libnode headers/library and reconfigure.") endif() message(STATUS "libnode enabled: ${LIBNODE_LIBRARY} (${LIBNODE_INCLUDE_DIR})") target_include_directories(blogi-editor PRIVATE ${LIBNODE_INCLUDE_DIR}) # EINHEITLICH MIT 'PRIVATE' LINKEN: if(CMAKE_SYSTEM_NAME MATCHES "Linux") target_link_libraries(blogi-editor PRIVATE -Wl,--no-as-needed -Wl,--whole-archive ${LIBNODE_LIBRARY} -Wl,--no-whole-archive ) else() target_link_libraries(blogi-editor PRIVATE ${LIBNODE_LIBRARY}) endif() message(STATUS "libnode enabled: ${NodeJS_LIBRARY} (${NodeJS_INCLUDE_DIR})") target_compile_definitions(blogi-editor PRIVATE BLOGI_HAVE_LIBNODE=1) # Export to widget subdirectories that include the shared node bridge header. set(BLOGI_LIBNODE_INCLUDE_DIR "${LIBNODE_INCLUDE_DIR}" CACHE INTERNAL "blogi libnode include dir") set(BLOGI_LIBNODE_LIBRARY "${LIBNODE_LIBRARY}" CACHE INTERNAL "blogi libnode library") # Cache für Widgets setzen set(BLOGI_LIBNODE_INCLUDE_DIR "${NodeJS_INCLUDE_DIR}" CACHE INTERNAL "blogi libnode include dir") set(BLOGI_LIBNODE_LIBRARY "${NodeJS_LIBRARY}" CACHE INTERNAL "blogi libnode library") if(TARGET blogidev) target_link_libraries(blogi-editor PRIVATE target_link_libraries(blogi-editor blogidev json-c::json-c tinyxml2::tinyxml2 Loading @@ -91,7 +71,8 @@ else() ${CMAKE_CURRENT_SOURCE_DIR}/../src/plugin.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/conf.cpp ) target_link_libraries(blogi-editor PRIVATE target_link_libraries(blogi-editor NodeJS::NodeJS httppp::httppp netplus::netplus htmlpp::htmlpp Loading Loading
Dockerfile +1 −2 Original line number Diff line number Diff line Loading @@ -81,8 +81,7 @@ RUN git clone https://github.com/Tuxist/CPP-SMTPClient-library.git && \ ninja -C CPP-SMTPClient-library/build install RUN git clone https://tuxist.de/git/jan.koester/blogi.git && \ cmake -B blogi/build -S blogi -G Ninja \ -DBUILD_EDITOR=ON \ cmake -B blogi/build -S blogi -G Ninja -DBUILD_EDITOR=ON \ ninja -C blogi/build install # ========================================== Loading
cmake/FindNodeJS.cmake 0 → 100644 +32 −0 Original line number Diff line number Diff line # cmake/FindNodeJS.cmake find_path(NodeJS_INCLUDE_DIR NAMES node.h PATH_SUFFIXES node include/node ) find_library(NodeJS_LIBRARY NAMES node libnode ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(NodeJS REQUIRED_VARS NodeJS_LIBRARY NodeJS_INCLUDE_DIR ) if(NodeJS_FOUND AND NOT TARGET NodeJS::NodeJS) add_library(NodeJS::NodeJS SHARED IMPORTED) set_target_properties(NodeJS::NodeJS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${NodeJS_INCLUDE_DIR}" IMPORTED_LOCATION "${NodeJS_LIBRARY}" ) # Für Alpine/Linux den Whole-Archive Linker-Flag direkt an das Target heften if(CMAKE_SYSTEM_NAME MATCHES "Linux") set_target_properties(NodeJS::NodeJS PROPERTIES INTERFACE_LINK_LIBRARIES "-Wl,--no-as-needed;-Wl,--whole-archive;${NodeJS_LIBRARY};-Wl,--no-whole-archive" ) endif() endif() mark_as_advanced(NodeJS_INCLUDE_DIR NodeJS_LIBRARY)
editor/CMakeLists.txt +9 −28 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ if(NOT TARGET blogidev) find_package(smtpclient REQUIRED) find_package(Brotli REQUIRED) find_package(paritypp REQUIRED) find_package(NodeJS REQUIRED) add_definitions(-D${CMAKE_HOST_SYSTEM_NAME} -DWIN32_LEAN_AND_MEAN) endif() Loading Loading @@ -51,36 +51,16 @@ if(NOT LIBNODE_INCLUDE_DIR OR NOT LIBNODE_LIBRARY) message(FATAL_ERROR "libnode is required but was not found. Install libnode headers/library and reconfigure.") endif() find_path(LIBNODE_INCLUDE_DIR NAMES node.h PATH_SUFFIXES node include/node) find_library(LIBNODE_LIBRARY NAMES node libnode) if(NOT LIBNODE_INCLUDE_DIR OR NOT LIBNODE_LIBRARY) message(FATAL_ERROR "libnode is required but was not found. Install libnode headers/library and reconfigure.") endif() message(STATUS "libnode enabled: ${LIBNODE_LIBRARY} (${LIBNODE_INCLUDE_DIR})") target_include_directories(blogi-editor PRIVATE ${LIBNODE_INCLUDE_DIR}) # EINHEITLICH MIT 'PRIVATE' LINKEN: if(CMAKE_SYSTEM_NAME MATCHES "Linux") target_link_libraries(blogi-editor PRIVATE -Wl,--no-as-needed -Wl,--whole-archive ${LIBNODE_LIBRARY} -Wl,--no-whole-archive ) else() target_link_libraries(blogi-editor PRIVATE ${LIBNODE_LIBRARY}) endif() message(STATUS "libnode enabled: ${NodeJS_LIBRARY} (${NodeJS_INCLUDE_DIR})") target_compile_definitions(blogi-editor PRIVATE BLOGI_HAVE_LIBNODE=1) # Export to widget subdirectories that include the shared node bridge header. set(BLOGI_LIBNODE_INCLUDE_DIR "${LIBNODE_INCLUDE_DIR}" CACHE INTERNAL "blogi libnode include dir") set(BLOGI_LIBNODE_LIBRARY "${LIBNODE_LIBRARY}" CACHE INTERNAL "blogi libnode library") # Cache für Widgets setzen set(BLOGI_LIBNODE_INCLUDE_DIR "${NodeJS_INCLUDE_DIR}" CACHE INTERNAL "blogi libnode include dir") set(BLOGI_LIBNODE_LIBRARY "${NodeJS_LIBRARY}" CACHE INTERNAL "blogi libnode library") if(TARGET blogidev) target_link_libraries(blogi-editor PRIVATE target_link_libraries(blogi-editor blogidev json-c::json-c tinyxml2::tinyxml2 Loading @@ -91,7 +71,8 @@ else() ${CMAKE_CURRENT_SOURCE_DIR}/../src/plugin.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/conf.cpp ) target_link_libraries(blogi-editor PRIVATE target_link_libraries(blogi-editor NodeJS::NodeJS httppp::httppp netplus::netplus htmlpp::htmlpp Loading