@@ -28,6 +28,13 @@ set(SHELL_EXECUTABLE "")
28
28
set (TINYXML2_LIB_DIR_COMPOSE_VOLUME "" )
29
29
set (TINYXML2_LIB_DIR_COMPOSE_LD_LIBRARY_PATH "" )
30
30
31
+ # Configure TinyXML2 library path if installed in user library path
32
+ if (NOT (TINYXML2_FROM_SOURCE OR TINYXML2_FROM_THIRDPARTY))
33
+ get_filename_component (TINYXML2_LIB_DIR ${TINYXML2_LIBRARY} DIRECTORY )
34
+ set (TINYXML2_LIB_DIR_COMPOSE_VOLUME "- ${TINYXML2_LIB_DIR} :${CMAKE_INSTALL_PREFIX} /${DATA_INSTALL_DIR} /fastdds:ro" )
35
+ set (TINYXML2_LIB_DIR_COMPOSE_LD_LIBRARY_PATH ":${CMAKE_INSTALL_PREFIX} /${DATA_INSTALL_DIR} /fastdds" )
36
+ endif ()
37
+
31
38
# Linux configurations
32
39
if (UNIX AND NOT (APPLE ) AND NOT (QNXNTO) AND NOT (ANDROID))
33
40
# Find bash
@@ -39,6 +46,21 @@ if(UNIX AND NOT(APPLE) AND NOT(QNXNTO) AND NOT(ANDROID))
39
46
set (SHELL_EXECUTABLE ${BASH_EXECUTABLE} )
40
47
set (DOCKER_IMAGE_NAME "ubuntu:22.04" )
41
48
49
+ set (PROJECT_BINARY_DIR_COMPOSE_VOLUME "${PROJECT_BINARY_DIR} :${PROJECT_BINARY_DIR} " )
50
+ set (fastcdr_LIB_DIR_COMPOSE_VOLUME "${fastcdr_LIB_DIR} :${fastcdr_LIB_DIR} " )
51
+ set (CMAKE_INSTALL_PREFIX_COMPOSE_VOLUME "${CMAKE_INSTALL_PREFIX} :${CMAKE_INSTALL_PREFIX} " )
52
+
53
+ set (PATH_ENVIRONMENT_VARIABLE_COMPOSE "LD_LIBRARY_PATH: ${PROJECT_BINARY_DIR} /src/cpp:${fastcdr_LIB_DIR} " )
54
+ if (TINYXML2_LIB_DIR_COMPOSE_LD_LIBRARY_PATH)
55
+ set (PATH_ENVIRONMENT_VARIABLE_COMPOSE "${PATH_ENVIRONMENT_VARIABLE_COMPOSE}${TINYXML2_LIB_DIR_COMPOSE_LD_LIBRARY_PATH} " )
56
+ endif ()
57
+ set (EXAMPLE_PREFIX_DIR_COMPOSE "${PROJECT_BINARY_DIR} /examples/cpp" )
58
+ set (EXAMPLE_SUFFIX_DIR_COMPOSE "" )
59
+ set (FASTDDS_DEFAULT_PROFILES_FILE_PREFIX_COMPOSE "${PROJECT_BINARY_DIR} /examples/cpp" )
60
+ set (COMMAND_EXAMPLE_DIR_PREFIX_COMPOSE "$\$ {EXAMPLE_DIR}" )
61
+ set (COMMAND_CONCATENATE_COMPOSE "&" )
62
+ set (COMMAND_BACKGROUND_JOB_COMPOSE "" )
63
+
42
64
# Windows configurations
43
65
elseif (WIN32 )
44
66
# Find pwsh
@@ -47,27 +69,60 @@ elseif(WIN32)
47
69
message (FATAL_ERROR "pwsh not found" )
48
70
endif ()
49
71
50
- set (PWSH_EXECUTABLE ${BASH_EXECUTABLE} )
72
+ set (PWSH_VERSION_DOCKER "latest" )
73
+ set (SHELL_EXECUTABLE "C:/\" Program Files\" /PowerShell/${PWSH_VERSION_DOCKER} /pwsh.exe" )
74
+
51
75
set (FILE_EXTENSION ".exe" )
76
+ set (DOCKER_IMAGE_NAME "windows-testing" )
52
77
53
- # We don't know which docker image to use for Windows yet
54
- message (FATAL_ERROR "Windows not supported yet" )
78
+ cmake_path(GET fastcdr_LIB_DIR PARENT_PATH fastcdr_INSTALL_DIR)
55
79
80
+ # Ensure drives inside docker are mounted in C: drive
81
+ string (REGEX REPLACE ".:" "C:" CMAKE_INSTALL_PREFIX_C ${CMAKE_INSTALL_PREFIX} )
82
+ string (REGEX REPLACE ".:" "C:" PROJECT_BINARY_DIR_C ${PROJECT_BINARY_DIR} )
83
+ string (REGEX REPLACE ".:" "C:" fastcdr_INSTALL_DIR_C ${fastcdr_INSTALL_DIR} )
84
+
85
+ set (PROJECT_BINARY_DIR_COMPOSE_VOLUME "${PROJECT_BINARY_DIR} :${PROJECT_BINARY_DIR_C} " )
86
+ set (fastcdr_LIB_DIR_COMPOSE_VOLUME "${fastcdr_INSTALL_DIR} /bin:${fastcdr_INSTALL_DIR_C} /bin" )
87
+ set (CMAKE_INSTALL_PREFIX_COMPOSE_VOLUME "${CMAKE_INSTALL_PREFIX} /bin:${CMAKE_INSTALL_PREFIX_C} /bin" )
88
+
89
+ set (PATH_ENVIRONMENT_VARIABLE_COMPOSE "PATH: C:/Program Files/OpenSSL-Win64;${CMAKE_INSTALL_PREFIX_C} /bin;${fastcdr_INSTALL_DIR_C} /bin;C:/Windows/System32;C:/Windows/System32/downlevel;" )
90
+ set (EXAMPLE_PREFIX_DIR_COMPOSE "${PROJECT_BINARY_DIR_C} /examples/cpp" )
91
+ if (CMAKE_BUILD_TYPE )
92
+ set (EXAMPLE_SUFFIX_DIR_COMPOSE "${CMAKE_BUILD_TYPE} " )
93
+ else ()
94
+ set (EXAMPLE_SUFFIX_DIR_COMPOSE "Release" )
95
+ endif ()
96
+ set (FASTDDS_DEFAULT_PROFILES_FILE_PREFIX_COMPOSE "${PROJECT_BINARY_DIR_C} /examples/cpp" )
97
+ set (COMMAND_EXAMPLE_DIR_PREFIX_COMPOSE "& $\$ Env:EXAMPLE_DIR" )
98
+ set (COMMAND_CONCATENATE_COMPOSE "&\" \" " )
99
+ set (COMMAND_BACKGROUND_JOB_COMPOSE "; Receive-Job 1 -Wait" )
100
+
101
+ set (WIN_DOCKERFILE ${CMAKE_CURRENT_LIST_DIR} /windows/Dockerfile)
102
+ # Generate image for testing
103
+ add_custom_target (
104
+ windows_docker_image_testing_generation
105
+ ALL
106
+ # Launch the docker build command using the build context.
107
+ COMMAND ${DOCKER_EXECUTABLE} build
108
+ --tag ${DOCKER_IMAGE_NAME}
109
+ --file ${WIN_DOCKERFILE}
110
+ ${CMAKE_CURRENT_LIST_DIR}
111
+ COMMENT "Creating windows image for testing..." VERBATIM
112
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} )
56
113
# Unsupported platform
57
114
else ()
58
115
message (FATAL_ERROR "Unsupported platform" )
59
116
endif ()
60
117
61
- # Configure TinyXML2 library path if installed in user library path
62
- if (NOT (TINYXML2_FROM_SOURCE OR TINYXML2_FROM_THIRDPARTY))
63
- get_filename_component (TINYXML2_LIB_DIR ${TINYXML2_LIBRARY} DIRECTORY )
64
- set (TINYXML2_LIB_DIR_COMPOSE_VOLUME "- ${TINYXML2_LIB_DIR} :${CMAKE_INSTALL_PREFIX} /${DATA_INSTALL_DIR} /fastdds:ro" )
65
- set (TINYXML2_LIB_DIR_COMPOSE_LD_LIBRARY_PATH ":${CMAKE_INSTALL_PREFIX} /${DATA_INSTALL_DIR} /fastdds" )
118
+ if (WIN32 )
119
+ # Temporarily, test hello world
120
+ file (GLOB examples_python_tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} /*world.py)
121
+ else ()
122
+ # Find all pytest files for testing
123
+ file (GLOB examples_python_tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} /*.py)
66
124
endif ()
67
125
68
- # Find all pytest files for testing
69
- file (GLOB examples_python_tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} /*.py)
70
-
71
126
# Add security test only if security is enabled
72
127
if (NOT SECURITY)
73
128
list (FILTER examples_python_tests EXCLUDE REGEX "security" )
0 commit comments