Skip to content

Commit

Permalink
Improve build system and added integration tests working properly wit…
Browse files Browse the repository at this point in the history
…h docker.
  • Loading branch information
viferga committed Mar 21, 2020
1 parent 8f3969f commit c6d5754
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 27 deletions.
32 changes: 17 additions & 15 deletions source/loaders/node_loader/bootstrap/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,26 @@ message(STATUS "Plugin ${target} bootstrap")
#

if(MSVC)
set(LOADER_LIBRARY_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
set(BOOTSTRAP_OUTPUT_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
else()
set(LOADER_LIBRARY_PATH "${PROJECT_BINARY_DIR}")
set(BOOTSTRAP_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
endif()

if(OPTION_BUILD_GUIX)
add_custom_target(${target} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${LOADER_LIBRARY_PATH}
)
else()
add_custom_target(${target} ALL
add_custom_target(${target} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${BOOTSTRAP_OUTPUT_PATH}
)

if(NOT OPTION_BUILD_GUIX)
add_custom_target(${target}-depends
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${LOADER_LIBRARY_PATH}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package.json ${LOADER_LIBRARY_PATH}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package-lock.json ${LOADER_LIBRARY_PATH}
COMMAND npm install
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package.json ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package-lock.json ${CMAKE_CURRENT_BINARY_DIR}
COMMAND npm --prefix ${CMAKE_CURRENT_BINARY_DIR} install ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/node_modules ${BOOTSTRAP_OUTPUT_PATH}/node_modules
)

add_dependencies(${target} ${target}-depends)
endif()

#
Expand All @@ -54,13 +56,13 @@ set_target_properties(${target}

# Library
install(FILES
${LOADER_LIBRARY_PATH}/bootstrap.js
${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js
DESTINATION ${INSTALL_LIB}
COMPONENT runtime
)

install(DIRECTORY
${LOADER_LIBRARY_PATH}/node_modules
${CMAKE_CURRENT_BINARY_DIR}/node_modules
DESTINATION ${INSTALL_LIB}
COMPONENT runtime
)
12 changes: 0 additions & 12 deletions source/tests/metacall_depends_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,6 @@ if(NOT OPTION_BUILD_DIST_LIBS)
return()
endif()

# Check if python dependencies are installed
execute_process(
COMMAND python -c "import rsa"
ERROR_QUIET
OUTPUT_QUIET
RESULT_VARIABLE PYTHON_DEPENDS
)

if(PYTHON_DEPENDS)
return()
endif()

#
# Executable name and options
#
Expand Down
20 changes: 20 additions & 0 deletions source/tests/metacall_python_open_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,26 @@ add_executable(${target}
# Create namespaced alias
add_executable(${META_PROJECT_NAME}::${target} ALIAS ${target})

#
# Dependencies
#

if(NOT OPTION_BUILD_GUIX)
if(MSVC)
set(DEPENDS_OUTPUT_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
else()
set(DEPENDS_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
endif()

add_custom_target(${target}-depends
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND npm --prefix ${CMAKE_CURRENT_BINARY_DIR} install jsonwebtoken
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/node_modules ${DEPENDS_OUTPUT_PATH}/node_modules
)

add_dependencies(${target} ${target}-depends)
endif()

#
# Project options
#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,25 @@ TEST_F(metacall_python_open_test, DefaultConstructor)
EXPECT_NE((int) 0, (int) strcmp(result, "<html><head></head><body>Error</body></html>"));

metacall_value_destroy(ret);

static const char str[] = "Hello World";

void * args[] =
{
metacall_value_create_string(str, sizeof(str) - 1)
};

ret = metacallv("login", args);

EXPECT_NE((void *) NULL, (void *) ret);

const char * token = metacall_value_to_string(ret);

EXPECT_EQ((int) 0, (int) strcmp(token, "eyJhbGciOiJIUzI1NiJ9.SGVsbG8gV29ybGQ.Iyc6PWVbK538giVdaInTeIO3jvvC1Vuy_czZUzoRRec"));

metacall_value_destroy(args[0]);

metacall_value_destroy(ret);
}
#endif /* OPTION_BUILD_LOADERS_PY */

Expand Down

0 comments on commit c6d5754

Please sign in to comment.