-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[axcioma] New port (C++11 CORBA implementation TAOX11) #31203
base: master
Are you sure you want to change the base?
Conversation
ports/axcioma/portfile.cmake
Outdated
|
||
|
||
vcpkg_execute_required_process( | ||
COMMAND ${BRIX11} bootstrap taox11 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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. 😅
There was a problem hiding this comment.
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!
ports/axcioma/portfile.cmake
Outdated
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() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use:
vcpkg/scripts/cmake/vcpkg_common_definitions.cmake
Lines 75 to 110 in 6d69bba
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() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
scripts/ci.baseline.txt
Outdated
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
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. |
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? |
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 |
This reverts commit 4fe3207.
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. |
See #31718 for the ace support for versioned namespace |
Thank you! |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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} |
There was a problem hiding this comment.
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?
GENERATE_TAO_IDL_RULES | ||
generated_client_sources | ||
generated_client_headers | ||
generated_server_sources | ||
generated_server_headers) |
There was a problem hiding this comment.
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.
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) |
There was a problem hiding this comment.
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}) |
There was a problem hiding this comment.
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()
, ...
Pinging @bold84 for response. Is work still being done for this PR? |
find_package
calls are REQUIRED, are satisfied byvcpkg.json
's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxxvcpkg.json
matches what upstream says.vcpkg.json
matches what upstream says../vcpkg x-add-version --all
and committing the result.