Skip to content

Commit c6d5754

Browse files
committed
Improve build system and added integration tests working properly with docker.
1 parent 8f3969f commit c6d5754

File tree

4 files changed

+56
-27
lines changed

4 files changed

+56
-27
lines changed

source/loaders/node_loader/bootstrap/CMakeLists.txt

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,26 @@ message(STATUS "Plugin ${target} bootstrap")
1818
#
1919

2020
if(MSVC)
21-
set(LOADER_LIBRARY_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
21+
set(BOOTSTRAP_OUTPUT_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
2222
else()
23-
set(LOADER_LIBRARY_PATH "${PROJECT_BINARY_DIR}")
23+
set(BOOTSTRAP_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
2424
endif()
2525

26-
if(OPTION_BUILD_GUIX)
27-
add_custom_target(${target} ALL
28-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
29-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${LOADER_LIBRARY_PATH}
30-
)
31-
else()
32-
add_custom_target(${target} ALL
26+
add_custom_target(${target} ALL
27+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
28+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${BOOTSTRAP_OUTPUT_PATH}
29+
)
30+
31+
if(NOT OPTION_BUILD_GUIX)
32+
add_custom_target(${target}-depends
3333
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
34-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js ${LOADER_LIBRARY_PATH}
35-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package.json ${LOADER_LIBRARY_PATH}
36-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package-lock.json ${LOADER_LIBRARY_PATH}
37-
COMMAND npm install
34+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package.json ${CMAKE_CURRENT_BINARY_DIR}
35+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lib/package-lock.json ${CMAKE_CURRENT_BINARY_DIR}
36+
COMMAND npm --prefix ${CMAKE_CURRENT_BINARY_DIR} install ${CMAKE_CURRENT_BINARY_DIR}
37+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/node_modules ${BOOTSTRAP_OUTPUT_PATH}/node_modules
3838
)
39+
40+
add_dependencies(${target} ${target}-depends)
3941
endif()
4042

4143
#
@@ -54,13 +56,13 @@ set_target_properties(${target}
5456

5557
# Library
5658
install(FILES
57-
${LOADER_LIBRARY_PATH}/bootstrap.js
59+
${CMAKE_CURRENT_SOURCE_DIR}/lib/bootstrap.js
5860
DESTINATION ${INSTALL_LIB}
5961
COMPONENT runtime
6062
)
6163

6264
install(DIRECTORY
63-
${LOADER_LIBRARY_PATH}/node_modules
65+
${CMAKE_CURRENT_BINARY_DIR}/node_modules
6466
DESTINATION ${INSTALL_LIB}
6567
COMPONENT runtime
6668
)

source/tests/metacall_depends_test/CMakeLists.txt

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,6 @@ if(NOT OPTION_BUILD_DIST_LIBS)
77
return()
88
endif()
99

10-
# Check if python dependencies are installed
11-
execute_process(
12-
COMMAND python -c "import rsa"
13-
ERROR_QUIET
14-
OUTPUT_QUIET
15-
RESULT_VARIABLE PYTHON_DEPENDS
16-
)
17-
18-
if(PYTHON_DEPENDS)
19-
return()
20-
endif()
21-
2210
#
2311
# Executable name and options
2412
#

source/tests/metacall_python_open_test/CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,26 @@ add_executable(${target}
5555
# Create namespaced alias
5656
add_executable(${META_PROJECT_NAME}::${target} ALIAS ${target})
5757

58+
#
59+
# Dependencies
60+
#
61+
62+
if(NOT OPTION_BUILD_GUIX)
63+
if(MSVC)
64+
set(DEPENDS_OUTPUT_PATH "${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
65+
else()
66+
set(DEPENDS_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
67+
endif()
68+
69+
add_custom_target(${target}-depends
70+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
71+
COMMAND npm --prefix ${CMAKE_CURRENT_BINARY_DIR} install jsonwebtoken
72+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/node_modules ${DEPENDS_OUTPUT_PATH}/node_modules
73+
)
74+
75+
add_dependencies(${target} ${target}-depends)
76+
endif()
77+
5878
#
5979
# Project options
6080
#

source/tests/metacall_python_open_test/source/metacall_python_open_test.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,25 @@ TEST_F(metacall_python_open_test, DefaultConstructor)
5353
EXPECT_NE((int) 0, (int) strcmp(result, "<html><head></head><body>Error</body></html>"));
5454

5555
metacall_value_destroy(ret);
56+
57+
static const char str[] = "Hello World";
58+
59+
void * args[] =
60+
{
61+
metacall_value_create_string(str, sizeof(str) - 1)
62+
};
63+
64+
ret = metacallv("login", args);
65+
66+
EXPECT_NE((void *) NULL, (void *) ret);
67+
68+
const char * token = metacall_value_to_string(ret);
69+
70+
EXPECT_EQ((int) 0, (int) strcmp(token, "eyJhbGciOiJIUzI1NiJ9.SGVsbG8gV29ybGQ.Iyc6PWVbK538giVdaInTeIO3jvvC1Vuy_czZUzoRRec"));
71+
72+
metacall_value_destroy(args[0]);
73+
74+
metacall_value_destroy(ret);
5675
}
5776
#endif /* OPTION_BUILD_LOADERS_PY */
5877

0 commit comments

Comments
 (0)