diff --git a/src/main/java/com/eprosima/fastdds/fastddsgen.java b/src/main/java/com/eprosima/fastdds/fastddsgen.java index ebfbb9d8..eb1e8a63 100644 --- a/src/main/java/com/eprosima/fastdds/fastddsgen.java +++ b/src/main/java/com/eprosima/fastdds/fastddsgen.java @@ -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"); } } } diff --git a/src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg b/src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg index 2ff2069a..78b27fc7 100644 --- a/src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg +++ b/src/main/java/com/eprosima/fastdds/idl/templates/CMakeLists.stg @@ -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$ @@ -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) @@ -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$ diff --git a/src/main/java/com/eprosima/fastdds/idl/templates/SwigCMake.stg b/src/main/java/com/eprosima/fastdds/idl/templates/SwigCMake.stg index ffa880c8..ccb62e84 100644 --- a/src/main/java/com/eprosima/fastdds/idl/templates/SwigCMake.stg +++ b/src/main/java/com/eprosima/fastdds/idl/templates/SwigCMake.stg @@ -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) @@ -92,7 +92,7 @@ set(\${PROJECT_NAME}_MODULE ) set(\${PROJECT_NAME}_MODULE_FILES - \${PROJECT_NAME}.i + $project.swigInterfaceFile_escaped$ ) SET_SOURCE_FILES_PROPERTIES( diff --git a/src/main/java/com/eprosima/fastdds/solution/Project.java b/src/main/java/com/eprosima/fastdds/solution/Project.java index ac849de6..f5f1e468 100644 --- a/src/main/java/com/eprosima/fastdds/solution/Project.java +++ b/src/main/java/com/eprosima/fastdds/solution/Project.java @@ -40,6 +40,55 @@ public Project(Context ctx, String file, LinkedHashSet dependencies) ctx_ = ctx; } + // Escaped getters for base class getters + public ArrayList getCommonSrcFiles_escaped() + { + ArrayList base_files = super.getCommonSrcFiles(); + ArrayList escaped = new ArrayList(); + for(int count = 0; count < base_files.size(); ++count) + { + String file = (String)base_files.get(count); + escaped.add(file.replace("\\", "/")); + } + return escaped; + } + + public ArrayList getCommonIncludeFiles_escaped() + { + ArrayList base_files = super.getCommonIncludeFiles(); + ArrayList escaped = new ArrayList(); + for(int count = 0; count < base_files.size(); ++count) + { + String file = (String)base_files.get(count); + escaped.add(file.replace("\\", "/")); + } + return escaped; + } + + public ArrayList getCommonTestingFiles_escaped() + { + ArrayList base_files = super.getCommonTestingFiles(); + ArrayList escaped = new ArrayList(); + for(int count = 0; count < base_files.size(); ++count) + { + String file = (String)base_files.get(count); + escaped.add(file.replace("\\", "/")); + } + return escaped; + } + + public ArrayList getTypeObjectTestingFiles_escaped() + { + ArrayList base_files = super.getTypeObjectTestingFiles(); + ArrayList escaped = new ArrayList(); + 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); @@ -50,6 +99,17 @@ public ArrayList getSubscriberSrcFiles() return m_subscribersrcfiles; } + public ArrayList getSubscriberSrcFiles_escaped() + { + ArrayList escaped = new ArrayList(); + 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); @@ -70,6 +130,17 @@ public ArrayList getPublisherSrcFiles() return m_publishersrcfiles; } + public ArrayList getPublisherSrcFiles_escaped() + { + ArrayList escaped = new ArrayList(); + 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); @@ -100,6 +171,17 @@ public ArrayList getProjectSrcFiles() return m_projectsrcfiles; } + public ArrayList getProjectSrcFiles_escaped() + { + ArrayList escaped = new ArrayList(); + 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); @@ -110,6 +192,17 @@ public ArrayList getJniSrcFiles() return m_jnisrcfiles; } + public ArrayList getJniSrcFiles_escaped() + { + ArrayList escaped = new ArrayList(); + 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); @@ -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 m_subscribersrcfiles = null; private ArrayList m_subscriberincludefiles = null; @@ -231,6 +339,7 @@ public Context getContext() private ArrayList m_jnisrcfiles = null; private ArrayList m_jniincludefiles = null; private ArrayList m_idlincludefiles = null; + private String m_swiginterfacefile = null; String m_guid = null; private Context ctx_ = null;