Commit 07951aa8 authored by jan.koester's avatar jan.koester
Browse files

test

parent dcfda5e2
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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

# ==========================================

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)
+9 −28
Original line number Diff line number Diff line
@@ -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()

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