Skip to content

Commit 9bc63a8

Browse files
Escape folder separator in generated CMakeLists.txt (#466)
* Refs #23041. Simplify direct conversions. Signed-off-by: Miguel Company <[email protected]> * Refs #23041. Escape paths converting backward slashes into forward ones. Signed-off-by: Miguel Company <[email protected]> * Refs #23041. Apply changes to `SwigCMake.stg`. Signed-off-by: Miguel Company <[email protected]> * Refs #23041. Escape swig interface file. Signed-off-by: Miguel Company <[email protected]> --------- Signed-off-by: Miguel Company <[email protected]>
1 parent a2ff4a4 commit 9bc63a8

File tree

4 files changed

+124
-14
lines changed

4 files changed

+124
-14
lines changed

src/main/java/com/eprosima/fastdds/fastddsgen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,7 @@ private Project parseIDL(
957957
Utils.writeFile(output_dir + ctx.getFilename() + ".i",
958958
maintemplates.getTemplate("com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg"), m_replace))
959959
{
960+
project.setSwigInterfaceFile(relative_dir + ctx.getFilename() + ".i");
960961
}
961962
}
962963
}

src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,14 @@ $endif$
7979
pub_sub_execs(project, libraries, test) ::= <<
8080

8181
message(STATUS "Configuring $project.name$...")
82-
$if(!project.commonSrcFiles.empty)$
83-
add_library($project.name$_lib $project.commonSrcFiles : { file | $file$}; separator=" "$)
84-
target_link_libraries($project.name$_lib $libraries : { library | $library$}; separator=" "$)
82+
$if(!project.commonSrcFiles_escaped.empty)$
83+
add_library($project.name$_lib $project.commonSrcFiles_escaped; separator=" "$)
84+
target_link_libraries($project.name$_lib $libraries; separator=" "$)
8585
$endif$
8686

87-
$if(!project.projectSrcFiles.empty)$
88-
add_executable($project.name$ $project.projectSrcFiles : { file | $file$}; separator=" "$)
89-
target_link_libraries($project.name$ $libraries : { library | $library$}; separator=" "$
87+
$if(!project.projectSrcFiles_escaped.empty)$
88+
add_executable($project.name$ $project.projectSrcFiles_escaped; separator=" "$)
89+
target_link_libraries($project.name$ $libraries; separator=" "$
9090
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$
9191
)
9292
$endif$
@@ -104,11 +104,11 @@ include(GoogleTest)
104104

105105
# $project.name$ Serialization Test
106106
add_executable($project.name$SerializationTest
107-
$project.commonTestingFiles : { file | $file$}; separator="\n"$
107+
$project.commonTestingFiles_escaped; separator="\n"$
108108
)
109109
target_link_libraries($project.name$SerializationTest
110110
GTest::gtest_main
111-
$libraries : { library | $library$}; separator=" "$
111+
$libraries; separator=" "$
112112
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$
113113
)
114114
gtest_discover_tests($project.name$SerializationTest)
@@ -119,14 +119,14 @@ $endif$
119119
>>
120120

121121
type_object_tests(project, libraries) ::= <<
122-
$if(project.typeObjectTestingFiles)$
122+
$if(project.typeObjectTestingFiles_escaped)$
123123
# $project.name$ TypeObject Test
124124
add_executable($project.name$TypeObjectTestingTest
125-
$project.typeObjectTestingFiles : { file | $file$}; separator="\n"$
125+
$project.typeObjectTestingFiles_escaped; separator="\n"$
126126
)
127127
target_link_libraries($project.name$TypeObjectTestingTest
128128
GTest::gtest_main
129-
$libraries : { library | $library$}; separator=" "$
129+
$libraries; separator=" "$
130130
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$)
131131
gtest_discover_tests($project.name$TypeObjectTestingTest)
132132
$endif$

src/main/java/com/eprosima/fastdds/idl/templates/SwigCMake.stg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
5151

5252
#Create library for C++ types
5353
add_library(\${PROJECT_NAME} SHARED
54-
$project.commonSrcFiles : { file | $file$}; separator="\n"$
55-
$project.projectSrcFiles : { file | $file$}; separator="\n"$
54+
$project.commonSrcFiles_escaped; separator="\n"$
55+
$project.projectSrcFiles_escaped; separator="\n"$
5656
)
5757
if(WIN32)
5858
target_compile_definitions(\${PROJECT_NAME} PRIVATE EPROSIMA_USER_DLL_EXPORT)
@@ -92,7 +92,7 @@ set(\${PROJECT_NAME}_MODULE
9292
)
9393

9494
set(\${PROJECT_NAME}_MODULE_FILES
95-
\${PROJECT_NAME}.i
95+
$project.swigInterfaceFile_escaped$
9696
)
9797

9898
SET_SOURCE_FILES_PROPERTIES(

src/main/java/com/eprosima/fastdds/solution/Project.java

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,55 @@ public Project(Context ctx, String file, LinkedHashSet<String> dependencies)
4040
ctx_ = ctx;
4141
}
4242

43+
// Escaped getters for base class getters
44+
public ArrayList<String> getCommonSrcFiles_escaped()
45+
{
46+
ArrayList<String> base_files = super.getCommonSrcFiles();
47+
ArrayList<String> escaped = new ArrayList<String>();
48+
for(int count = 0; count < base_files.size(); ++count)
49+
{
50+
String file = (String)base_files.get(count);
51+
escaped.add(file.replace("\\", "/"));
52+
}
53+
return escaped;
54+
}
55+
56+
public ArrayList<String> getCommonIncludeFiles_escaped()
57+
{
58+
ArrayList<String> base_files = super.getCommonIncludeFiles();
59+
ArrayList<String> escaped = new ArrayList<String>();
60+
for(int count = 0; count < base_files.size(); ++count)
61+
{
62+
String file = (String)base_files.get(count);
63+
escaped.add(file.replace("\\", "/"));
64+
}
65+
return escaped;
66+
}
67+
68+
public ArrayList<String> getCommonTestingFiles_escaped()
69+
{
70+
ArrayList<String> base_files = super.getCommonTestingFiles();
71+
ArrayList<String> escaped = new ArrayList<String>();
72+
for(int count = 0; count < base_files.size(); ++count)
73+
{
74+
String file = (String)base_files.get(count);
75+
escaped.add(file.replace("\\", "/"));
76+
}
77+
return escaped;
78+
}
79+
80+
public ArrayList<String> getTypeObjectTestingFiles_escaped()
81+
{
82+
ArrayList<String> base_files = super.getTypeObjectTestingFiles();
83+
ArrayList<String> escaped = new ArrayList<String>();
84+
for(int count = 0; count < base_files.size(); ++count)
85+
{
86+
String file = (String)base_files.get(count);
87+
escaped.add(file.replace("\\", "/"));
88+
}
89+
return escaped;
90+
}
91+
4392
public void addSubscriberSrcFile(String file)
4493
{
4594
m_subscribersrcfiles.add(file);
@@ -50,6 +99,17 @@ public ArrayList getSubscriberSrcFiles()
5099
return m_subscribersrcfiles;
51100
}
52101

102+
public ArrayList getSubscriberSrcFiles_escaped()
103+
{
104+
ArrayList<String> escaped = new ArrayList<String>();
105+
for(int count = 0; count < m_subscribersrcfiles.size(); ++count)
106+
{
107+
String file = (String)m_subscribersrcfiles.get(count);
108+
escaped.add(file.replace("\\", "/"));
109+
}
110+
return escaped;
111+
}
112+
53113
public void addSubscriberIncludeFile(String file)
54114
{
55115
m_subscriberincludefiles.add(file);
@@ -70,6 +130,17 @@ public ArrayList getPublisherSrcFiles()
70130
return m_publishersrcfiles;
71131
}
72132

133+
public ArrayList getPublisherSrcFiles_escaped()
134+
{
135+
ArrayList<String> escaped = new ArrayList<String>();
136+
for(int count = 0; count < m_publishersrcfiles.size(); ++count)
137+
{
138+
String file = (String)m_publishersrcfiles.get(count);
139+
escaped.add(file.replace("\\", "/"));
140+
}
141+
return escaped;
142+
}
143+
73144
public void addPublisherIncludeFile(String file)
74145
{
75146
m_publisherincludefiles.add(file);
@@ -100,6 +171,17 @@ public ArrayList getProjectSrcFiles()
100171
return m_projectsrcfiles;
101172
}
102173

174+
public ArrayList getProjectSrcFiles_escaped()
175+
{
176+
ArrayList<String> escaped = new ArrayList<String>();
177+
for(int count = 0; count < m_projectsrcfiles.size(); ++count)
178+
{
179+
String file = (String)m_projectsrcfiles.get(count);
180+
escaped.add(file.replace("\\", "/"));
181+
}
182+
return escaped;
183+
}
184+
103185
public void addJniSrcFile(String file)
104186
{
105187
m_jnisrcfiles.add(file);
@@ -110,6 +192,17 @@ public ArrayList<String> getJniSrcFiles()
110192
return m_jnisrcfiles;
111193
}
112194

195+
public ArrayList<String> getJniSrcFiles_escaped()
196+
{
197+
ArrayList<String> escaped = new ArrayList<String>();
198+
for(int count = 0; count < m_jnisrcfiles.size(); ++count)
199+
{
200+
String file = (String)m_jnisrcfiles.get(count);
201+
escaped.add(file.replace("\\", "/"));
202+
}
203+
return escaped;
204+
}
205+
113206
public void addJniIncludeFile(String file)
114207
{
115208
m_jniincludefiles.add(file);
@@ -219,6 +312,21 @@ public Context getContext()
219312
return ctx_;
220313
}
221314

315+
public void setSwigInterfaceFile(String file)
316+
{
317+
m_swiginterfacefile = file;
318+
}
319+
320+
public String getSwigInterfaceFile()
321+
{
322+
return m_swiginterfacefile;
323+
}
324+
325+
public String getSwigInterfaceFile_escaped()
326+
{
327+
return m_swiginterfacefile.replace("\\", "/");
328+
}
329+
222330
private boolean m_containsInterfaces = false;
223331
private ArrayList<String> m_subscribersrcfiles = null;
224332
private ArrayList<String> m_subscriberincludefiles = null;
@@ -231,6 +339,7 @@ public Context getContext()
231339
private ArrayList<String> m_jnisrcfiles = null;
232340
private ArrayList<String> m_jniincludefiles = null;
233341
private ArrayList<String> m_idlincludefiles = null;
342+
private String m_swiginterfacefile = null;
234343
String m_guid = null;
235344

236345
private Context ctx_ = null;

0 commit comments

Comments
 (0)