Skip to content

[axcioma] New port (C++11 CORBA implementation TAOX11)#31203

Closed
bold84 wants to merge 24 commits into
microsoft:masterfrom
ORDIS-Co-Ltd:axcioma
Closed

[axcioma] New port (C++11 CORBA implementation TAOX11)#31203
bold84 wants to merge 24 commits into
microsoft:masterfrom
ORDIS-Co-Ltd:axcioma

Conversation

@bold84

@bold84 bold84 commented May 1, 2023

Copy link
Copy Markdown
Contributor
  • Changes comply with the maintainer guide
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

Comment thread ports/axcioma/portfile.cmake Outdated


vcpkg_execute_required_process(
COMMAND ${BRIX11} bootstrap taox11

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AXCIOMA is the default target for bootstrapping. The bootstrap command will clone all dependent git repositories to their expected location. This can be done by executing

yeah... no that is not going to work. You have to do it manually so that asset caching can take effect.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Neumann-A Thanks for your comment!
This is a port I wrote three years ago. I have to get into it again. 😅

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AXCIOMA is the default target for bootstrapping. The bootstrap command will clone all dependent git repositories to their expected location. This can be done by executing

yeah... no that is not going to work. You have to do it manually so that asset caching can take effect.

Can you have another look? Thanks!

Comment thread ports/axcioma/CONTROL Outdated
Comment thread ports/axcioma/portfile.cmake Outdated
Comment on lines +180 to +203
if(VCPKG_TARGET_IS_WINDOWS)
set(LIB_RELEASE_SUFFIX .lib)
set(LIB_DEBUG_SUFFIX d.lib)
set(DLL_RELEASE_SUFFIX .dll)
set(DLL_DEBUG_SUFFIX d.dll)
set(LIB_PREFIX)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(DLL_DECORATOR s)
endif()
elseif(VCPKG_TARGET_IS_LINUX)
set(DLL_DECORATOR)
set(LIB_RELEASE_SUFFIX .a)
set(LIB_DEBUG_SUFFIX .a)
set(DLL_RELEASE_SUFFIX .so)
set(DLL_DEBUG_SUFFIX .so)
set(LIB_PREFIX lib)
elseif(VCPKG_TARGET_IS_OSX)
set(DLL_DECORATOR)
set(LIB_RELEASE_SUFFIX .a)
set(LIB_DEBUG_SUFFIX .a)
set(DLL_RELEASE_SUFFIX .dylib)
set(DLL_DEBUG_SUFFIX .dylib)
set(LIB_PREFIX lib)
endif()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use:

if(VCPKG_TARGET_IS_MINGW)
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a")
set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib")
set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib")
set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "")
elseif(VCPKG_TARGET_IS_WINDOWS)
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib")
set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib")
set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "")
set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "")
set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "")
set(VCPKG_FIND_LIBRARY_SUFFIXES ".lib" ".dll") #This is a slight modification to CMakes value which does not include ".dll".
set(VCPKG_FIND_LIBRARY_PREFIXES "" "lib") #This is a slight modification to CMakes value which does not include "lib".
elseif(VCPKG_TARGET_IS_OSX)
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "")
set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dylib")
set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
set(VCPKG_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a")
set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "")
else()
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "")
set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".so")
set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
set(VCPKG_FIND_LIBRARY_SUFFIXES ".so" ".a")
set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "")
endif()

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

Comment thread scripts/ci.baseline.txt Outdated
Comment on lines +69 to +76
axcioma:x64-windows-static-md=fail
axcioma:arm64-windows=fail
axcioma:x64-uwp=fail
axcioma:arm-uwp=fail
axcioma:x64-android=fail
axcioma:arm64-android=fail
axcioma:arm-neon-android=fail
axcioma:x64-osx=fail

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you don't need CI baseline since you use supports

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@bold84 bold84 marked this pull request as ready for review May 4, 2023 05:38
@Adela0814 Adela0814 added the category:new-port The issue is requesting a new library to be added; consider making a PR! label May 4, 2023
@bold84

bold84 commented May 4, 2023

Copy link
Copy Markdown
Contributor Author

Because this port implicitly builds ACE, which axcioma heavily depends on, it conflicts with the ACE port. I don't think it's right to add "skip" to ci.baseline.txt without first trying to combine axcioma and ace ports.

Maybe it would be possible with a specific feature that builds the existing ace port in a way so it can be used for axcioma.
@jwillemsen is likely the best person who can answer this question.

@jwillemsen

Copy link
Copy Markdown
Contributor

ACE needs to be compiled with versioned namespaces and xml-utils (which implies xerces-c). For versioned namespaces it looks you have to extend the ace vcpkg file

@bold84

bold84 commented May 5, 2023

Copy link
Copy Markdown
Contributor Author

ACE needs to be compiled with versioned namespaces and xml-utils (which implies xerces-c). For versioned namespaces it looks you have to extend the ace vcpkg file

And what about TAO, that is part of the ace port, as you know.

I would probably have to extend brix11 to allow such scenario, right?

@jwillemsen

jwillemsen commented May 5, 2023

Copy link
Copy Markdown
Contributor

TAO is part of ACE, there also versioned namespaces has to be enabled. I have never used the vcpkg version of ACE/TAO for any project, not tested it at all. brix11 has the capability to specify the ACE/TAO/MPC root, maybe you can use that

@bold84 bold84 marked this pull request as draft May 5, 2023 20:30
@bold84

bold84 commented May 7, 2023

Copy link
Copy Markdown
Contributor Author

As @jwillemsen rightfully pointed out ( RemedyIT/axcioma#145 ), MacOS is not a supported platform (at least on arm64 I have several failing tests) and I therefore remove osx from the supports field for now.

@jwillemsen

Copy link
Copy Markdown
Contributor

See #31718 for the ace support for versioned namespace

@bold84

bold84 commented May 30, 2023

Copy link
Copy Markdown
Contributor Author

See #31718 for the ace support for versioned namespace

Thank you!
I'll get back to this in a while. I have a bit of work to do first.

@ClausKlein ClausKlein left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q: Do you wand to build taox11 only or all packages: ciaox11, and dancex11 too?

Q: How dit you test the result of this port?

IMHO: instead of install find_modules() you should export a modern CMake interface package to taox11:
see https://github.com/ClausKlein/axcioma/blob/feature/build-with-example/CMakeLists.txt for example.

@@ -0,0 +1,52 @@
find_program(TAO_IDL_COMMAND tao_idl)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The taox11 compiler is ridlc!

add_custom_command(
OUTPUT ${client_source_output} ${client_header_output}
${server_source_output} ${server_header_output}
COMMAND ${TAO_IDL_COMMAND} ARGS ${TAO_IDL_ARGS}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TAO_IDL_ARGS is not set?

Comment on lines +48 to +52
GENERATE_TAO_IDL_RULES
generated_client_sources
generated_client_headers
generated_server_sources
generated_server_headers)

@ClausKlein ClausKlein Oct 9, 2023

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a deprecated CMake style!
Use endmacro() without arguments.

Comment on lines +3 to +12
macro(APPEND orig_string new_string)
if(NOT ${orig_string})
set(${orig_string} ${new_string})
else(NOT ${orig_string})
set(${orig_string} ${${orig_string}} ${new_string})
endif(NOT ${orig_string})
endmacro(
APPEND
orig_string
new_string)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not needed! see CMake list APPEND

${CMAKE_CURRENT_BINARY_DIR}/${server_source_output})
list(APPEND ${generated_server_headers}
${CMAKE_CURRENT_BINARY_DIR}/${server_header_output})
endforeach(idl_source ${ARGN})

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deprecated style!
use simply endforeach(), else(), endif(), ...

@Adela0814

Copy link
Copy Markdown
Contributor

Pinging @bold84 for response. Is work still being done for this PR?

@BillyONeal

Copy link
Copy Markdown
Member

Closing due to no response in over a year.

@BillyONeal BillyONeal closed this Aug 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:new-port The issue is requesting a new library to be added; consider making a PR!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants