Skip to content

[23094] Escape folder separator in generated CMakeLists.txt (backport #466) #468

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 4.0.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/java/com/eprosima/fastdds/fastddsgen.java
Original file line number Diff line number Diff line change
Expand Up @@ -957,6 +957,7 @@ private Project parseIDL(
Utils.writeFile(output_dir + ctx.getFilename() + ".i",
maintemplates.getTemplate("com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg"), m_replace))
{
project.setSwigInterfaceFile(relative_dir + ctx.getFilename() + ".i");
}
}
}
Expand Down
22 changes: 11 additions & 11 deletions src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,14 @@ $endif$
pub_sub_execs(project, libraries, test) ::= <<

message(STATUS "Configuring $project.name$...")
$if(!project.commonSrcFiles.empty)$
add_library($project.name$_lib $project.commonSrcFiles : { file | $file$}; separator=" "$)
target_link_libraries($project.name$_lib $libraries : { library | $library$}; separator=" "$)
$if(!project.commonSrcFiles_escaped.empty)$
add_library($project.name$_lib $project.commonSrcFiles_escaped; separator=" "$)
target_link_libraries($project.name$_lib $libraries; separator=" "$)
$endif$

$if(!project.projectSrcFiles.empty)$
add_executable($project.name$ $project.projectSrcFiles : { file | $file$}; separator=" "$)
target_link_libraries($project.name$ $libraries : { library | $library$}; separator=" "$
$if(!project.projectSrcFiles_escaped.empty)$
add_executable($project.name$ $project.projectSrcFiles_escaped; separator=" "$)
target_link_libraries($project.name$ $libraries; separator=" "$
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$
)
$endif$
Expand All @@ -77,11 +77,11 @@ include(GoogleTest)

# $project.name$ Serialization Test
add_executable($project.name$SerializationTest
$project.commonTestingFiles : { file | $file$}; separator="\n"$
$project.commonTestingFiles_escaped; separator="\n"$
)
target_link_libraries($project.name$SerializationTest
GTest::gtest_main
$libraries : { library | $library$}; separator=" "$
$libraries; separator=" "$
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$
)
gtest_discover_tests($project.name$SerializationTest)
Expand All @@ -92,14 +92,14 @@ $endif$
>>

type_object_tests(project, libraries) ::= <<
$if(project.typeObjectTestingFiles)$
$if(project.typeObjectTestingFiles_escaped)$
# $project.name$ TypeObject Test
add_executable($project.name$TypeObjectTestingTest
$project.typeObjectTestingFiles : { file | $file$}; separator="\n"$
$project.typeObjectTestingFiles_escaped; separator="\n"$
)
target_link_libraries($project.name$TypeObjectTestingTest
GTest::gtest_main
$libraries : { library | $library$}; separator=" "$
$libraries; separator=" "$
$project.name$_lib $project.dependencies : { dep | $dep$_lib}; separator=" "$)
gtest_discover_tests($project.name$TypeObjectTestingTest)
$endif$
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)

#Create library for C++ types
add_library(\${PROJECT_NAME} SHARED
$project.commonSrcFiles : { file | $file$}; separator="\n"$
$project.projectSrcFiles : { file | $file$}; separator="\n"$
$project.commonSrcFiles_escaped; separator="\n"$
$project.projectSrcFiles_escaped; separator="\n"$
)
if(WIN32)
target_compile_definitions(\${PROJECT_NAME} PRIVATE EPROSIMA_USER_DLL_EXPORT)
Expand Down Expand Up @@ -92,7 +92,7 @@ set(\${PROJECT_NAME}_MODULE
)

set(\${PROJECT_NAME}_MODULE_FILES
\${PROJECT_NAME}.i
$project.swigInterfaceFile_escaped$
)

SET_SOURCE_FILES_PROPERTIES(
Expand Down
109 changes: 109 additions & 0 deletions src/main/java/com/eprosima/fastdds/solution/Project.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,55 @@ public Project(Context ctx, String file, LinkedHashSet<String> dependencies)
ctx_ = ctx;
}

// Escaped getters for base class getters
public ArrayList<String> getCommonSrcFiles_escaped()
{
ArrayList<String> base_files = super.getCommonSrcFiles();
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < base_files.size(); ++count)
{
String file = (String)base_files.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public ArrayList<String> getCommonIncludeFiles_escaped()
{
ArrayList<String> base_files = super.getCommonIncludeFiles();
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < base_files.size(); ++count)
{
String file = (String)base_files.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public ArrayList<String> getCommonTestingFiles_escaped()
{
ArrayList<String> base_files = super.getCommonTestingFiles();
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < base_files.size(); ++count)
{
String file = (String)base_files.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public ArrayList<String> getTypeObjectTestingFiles_escaped()
{
ArrayList<String> base_files = super.getTypeObjectTestingFiles();
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < base_files.size(); ++count)
{
String file = (String)base_files.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public void addSubscriberSrcFile(String file)
{
m_subscribersrcfiles.add(file);
Expand All @@ -50,6 +99,17 @@ public ArrayList getSubscriberSrcFiles()
return m_subscribersrcfiles;
}

public ArrayList getSubscriberSrcFiles_escaped()
{
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < m_subscribersrcfiles.size(); ++count)
{
String file = (String)m_subscribersrcfiles.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public void addSubscriberIncludeFile(String file)
{
m_subscriberincludefiles.add(file);
Expand All @@ -70,6 +130,17 @@ public ArrayList getPublisherSrcFiles()
return m_publishersrcfiles;
}

public ArrayList getPublisherSrcFiles_escaped()
{
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < m_publishersrcfiles.size(); ++count)
{
String file = (String)m_publishersrcfiles.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public void addPublisherIncludeFile(String file)
{
m_publisherincludefiles.add(file);
Expand Down Expand Up @@ -100,6 +171,17 @@ public ArrayList getProjectSrcFiles()
return m_projectsrcfiles;
}

public ArrayList getProjectSrcFiles_escaped()
{
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < m_projectsrcfiles.size(); ++count)
{
String file = (String)m_projectsrcfiles.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public void addJniSrcFile(String file)
{
m_jnisrcfiles.add(file);
Expand All @@ -110,6 +192,17 @@ public ArrayList<String> getJniSrcFiles()
return m_jnisrcfiles;
}

public ArrayList<String> getJniSrcFiles_escaped()
{
ArrayList<String> escaped = new ArrayList<String>();
for(int count = 0; count < m_jnisrcfiles.size(); ++count)
{
String file = (String)m_jnisrcfiles.get(count);
escaped.add(file.replace("\\", "/"));
}
return escaped;
}

public void addJniIncludeFile(String file)
{
m_jniincludefiles.add(file);
Expand Down Expand Up @@ -219,6 +312,21 @@ public Context getContext()
return ctx_;
}

public void setSwigInterfaceFile(String file)
{
m_swiginterfacefile = file;
}

public String getSwigInterfaceFile()
{
return m_swiginterfacefile;
}

public String getSwigInterfaceFile_escaped()
{
return m_swiginterfacefile.replace("\\", "/");
}

private boolean m_containsInterfaces = false;
private ArrayList<String> m_subscribersrcfiles = null;
private ArrayList<String> m_subscriberincludefiles = null;
Expand All @@ -231,6 +339,7 @@ public Context getContext()
private ArrayList<String> m_jnisrcfiles = null;
private ArrayList<String> m_jniincludefiles = null;
private ArrayList<String> m_idlincludefiles = null;
private String m_swiginterfacefile = null;
String m_guid = null;

private Context ctx_ = null;
Expand Down