Skip to content
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

Add CMake generation support #104

Open
horusxnetworks opened this issue Aug 10, 2020 · 5 comments
Open

Add CMake generation support #104

horusxnetworks opened this issue Aug 10, 2020 · 5 comments

Comments

@horusxnetworks
Copy link

Hi,

CMake is an open-source, cross-platform family of tools designed to build, test and package software. It's very popular.
Could you please add CMake generation support?

@jwillemsen
Copy link
Member

jwillemsen commented Aug 10, 2020

See also DOCGroup/ACE_TAO#266

@mitza-oci
Copy link
Member

It seems like that would be possible. MPC can be extended to support new "types," and the process for doing that is described in its documentation. Could you describe how you plan to use it?

@horusxnetworks
Copy link
Author

horusxnetworks commented Aug 11, 2020

It seems like that would be possible. MPC can be extended to support new "types," and the process for doing that is described in its documentation. Could you describe how you plan to use it?
Hi,
I'm working on 1 cross-platform project, ACE is used as on of submodules. I choose CMake as build system because:

  • Support multiple platforms (it's like all of them)
  • Can use CLion as IDE: the best C++ cross-platform IDE

Since CMake is not supported to be generated by MPC so I had to create CMake file by myself. It's like below:

cmake_minimum_required(VERSION 2.8.12)

if(POLICY CMP0048)
	cmake_policy(SET CMP0048 NEW)
endif()

project(ACE)

set (ACE_VERSION 6.5.10)

set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")

option(SKIP_INSTALL "Skip installation" ON)

set(ACE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../ACE")
set(ACE_CXX_SRCS
	${ACE_PATH}/ace/ACE.cpp
	${ACE_PATH}/ace/ACE_crc32.cpp
	${ACE_PATH}/ace/ACE_crc_ccitt.cpp
	${ACE_PATH}/ace/ATM_Acceptor.cpp
	${ACE_PATH}/ace/ATM_Addr.cpp
	${ACE_PATH}/ace/ATM_Connector.cpp
	${ACE_PATH}/ace/ATM_Params.cpp
	${ACE_PATH}/ace/ATM_QoS.cpp
	${ACE_PATH}/ace/ATM_Stream.cpp
	${ACE_PATH}/ace/Activation_Queue.cpp
	${ACE_PATH}/ace/Active_Map_Manager.cpp
	${ACE_PATH}/ace/Addr.cpp
	${ACE_PATH}/ace/Argv_Type_Converter.cpp
	${ACE_PATH}/ace/Assert.cpp
	${ACE_PATH}/ace/Asynch_IO.cpp
	${ACE_PATH}/ace/Asynch_IO_Impl.cpp
	${ACE_PATH}/ace/Asynch_Pseudo_Task.cpp
	${ACE_PATH}/ace/Atomic_Op.cpp
	${ACE_PATH}/ace/Atomic_Op_Sparc.c
	${ACE_PATH}/ace/Barrier.cpp
	${ACE_PATH}/ace/Base_Thread_Adapter.cpp
	${ACE_PATH}/ace/Based_Pointer_Repository.cpp
	${ACE_PATH}/ace/Basic_Stats.cpp
	${ACE_PATH}/ace/Basic_Types.cpp
	${ACE_PATH}/ace/CDR_Base.cpp
	${ACE_PATH}/ace/CDR_Size.cpp
	${ACE_PATH}/ace/CDR_Stream.cpp
	${ACE_PATH}/ace/Capabilities.cpp
	${ACE_PATH}/ace/Cleanup.cpp
	${ACE_PATH}/ace/Codecs.cpp
	${ACE_PATH}/ace/Codeset_IBM1047.cpp
	${ACE_PATH}/ace/Codeset_Registry.cpp
	${ACE_PATH}/ace/Codeset_Registry_db.cpp
	${ACE_PATH}/ace/Condition_Attributes.cpp
	${ACE_PATH}/ace/Condition_Recursive_Thread_Mutex.cpp
	${ACE_PATH}/ace/Condition_Thread_Mutex.cpp
	${ACE_PATH}/ace/Configuration.cpp
	${ACE_PATH}/ace/Configuration_Import_Export.cpp
	${ACE_PATH}/ace/Connection_Recycling_Strategy.cpp
	${ACE_PATH}/ace/Containers.cpp
	${ACE_PATH}/ace/Copy_Disabled.cpp
	${ACE_PATH}/ace/DEV.cpp
	${ACE_PATH}/ace/DEV_Addr.cpp
	${ACE_PATH}/ace/DEV_Connector.cpp
	${ACE_PATH}/ace/DEV_IO.cpp
	${ACE_PATH}/ace/DLL.cpp
	${ACE_PATH}/ace/DLL_Manager.cpp
	${ACE_PATH}/ace/Date_Time.cpp
	${ACE_PATH}/ace/Dev_Poll_Reactor.cpp
	${ACE_PATH}/ace/Dirent.cpp
	${ACE_PATH}/ace/Dirent_Selector.cpp
	${ACE_PATH}/ace/Dump.cpp
	${ACE_PATH}/ace/Dynamic.cpp
	${ACE_PATH}/ace/Dynamic_Message_Strategy.cpp
	${ACE_PATH}/ace/Dynamic_Service_Base.cpp
	${ACE_PATH}/ace/Dynamic_Service_Dependency.cpp
	${ACE_PATH}/ace/Encoding_Converter.cpp
	${ACE_PATH}/ace/Encoding_Converter_Factory.cpp
	${ACE_PATH}/ace/Event_Base.cpp
	${ACE_PATH}/ace/Event_Handler.cpp
	${ACE_PATH}/ace/Event_Handler_Handle_Timeout_Upcall.cpp
	${ACE_PATH}/ace/FIFO.cpp
	${ACE_PATH}/ace/FIFO_Recv.cpp
	${ACE_PATH}/ace/FIFO_Recv_Msg.cpp
	${ACE_PATH}/ace/FIFO_Send.cpp
	${ACE_PATH}/ace/FIFO_Send_Msg.cpp
	${ACE_PATH}/ace/FILE.cpp
	${ACE_PATH}/ace/FILE_Addr.cpp
	${ACE_PATH}/ace/FILE_Connector.cpp
	${ACE_PATH}/ace/FILE_IO.cpp
	${ACE_PATH}/ace/File_Lock.cpp
	${ACE_PATH}/ace/Filecache.cpp
	${ACE_PATH}/ace/Flag_Manip.cpp
	${ACE_PATH}/ace/Framework_Component.cpp
	${ACE_PATH}/ace/Functor.cpp
	${ACE_PATH}/ace/Functor_String.cpp
	${ACE_PATH}/ace/Get_Opt.cpp
	${ACE_PATH}/ace/Handle_Ops.cpp
	${ACE_PATH}/ace/Handle_Set.cpp
	${ACE_PATH}/ace/Hashable.cpp
	${ACE_PATH}/ace/High_Res_Timer.cpp
	${ACE_PATH}/ace/ICMP_Socket.cpp
	${ACE_PATH}/ace/INET_Addr.cpp
	${ACE_PATH}/ace/IOStream.cpp
	${ACE_PATH}/ace/IO_Cntl_Msg.cpp
	${ACE_PATH}/ace/IO_SAP.cpp
	${ACE_PATH}/ace/IPC_SAP.cpp
	${ACE_PATH}/ace/Init_ACE.cpp
	${ACE_PATH}/ace/LSOCK.cpp
	${ACE_PATH}/ace/LSOCK_Acceptor.cpp
	${ACE_PATH}/ace/LSOCK_CODgram.cpp
	${ACE_PATH}/ace/LSOCK_Connector.cpp
	${ACE_PATH}/ace/LSOCK_Dgram.cpp
	${ACE_PATH}/ace/LSOCK_Stream.cpp
	${ACE_PATH}/ace/Lib_Find.cpp
	${ACE_PATH}/ace/Local_Memory_Pool.cpp
	${ACE_PATH}/ace/Local_Name_Space.cpp
	${ACE_PATH}/ace/Local_Tokens.cpp
	${ACE_PATH}/ace/Lock.cpp
	${ACE_PATH}/ace/Log_Category.cpp
	${ACE_PATH}/ace/Log_Msg.cpp
	${ACE_PATH}/ace/Log_Msg_Android_Logcat.cpp
	${ACE_PATH}/ace/Log_Msg_Backend.cpp
	${ACE_PATH}/ace/Log_Msg_Callback.cpp
	${ACE_PATH}/ace/Log_Msg_IPC.cpp
	${ACE_PATH}/ace/Log_Msg_NT_Event_Log.cpp
	${ACE_PATH}/ace/Log_Msg_UNIX_Syslog.cpp
	${ACE_PATH}/ace/Log_Record.cpp
	${ACE_PATH}/ace/Logging_Strategy.cpp
	${ACE_PATH}/ace/MEM_Acceptor.cpp
	${ACE_PATH}/ace/MEM_Addr.cpp
	${ACE_PATH}/ace/MEM_Connector.cpp
	${ACE_PATH}/ace/MEM_IO.cpp
	${ACE_PATH}/ace/MEM_SAP.cpp
	${ACE_PATH}/ace/MEM_Stream.cpp
	${ACE_PATH}/ace/MMAP_Memory_Pool.cpp
	${ACE_PATH}/ace/MQX_Filesystem.cpp
	${ACE_PATH}/ace/Malloc.cpp
	${ACE_PATH}/ace/Malloc_Allocator.cpp
	${ACE_PATH}/ace/Mem_Map.cpp
	${ACE_PATH}/ace/Message_Block.cpp
	${ACE_PATH}/ace/Message_Queue.cpp
	${ACE_PATH}/ace/Message_Queue_NT.cpp
	${ACE_PATH}/ace/Message_Queue_Vx.cpp
	${ACE_PATH}/ace/Method_Request.cpp
	${ACE_PATH}/ace/Monitor_Admin.cpp
	${ACE_PATH}/ace/Monitor_Admin_Manager.cpp
	${ACE_PATH}/ace/Monitor_Base.cpp
	${ACE_PATH}/ace/Monitor_Control_Action.cpp
	${ACE_PATH}/ace/Monitor_Control_Types.cpp
	${ACE_PATH}/ace/Monitor_Point_Registry.cpp
	${ACE_PATH}/ace/Monitor_Size.cpp
	${ACE_PATH}/ace/Monotonic_Time_Policy.cpp
	${ACE_PATH}/ace/Msg_WFMO_Reactor.cpp
	${ACE_PATH}/ace/Multihomed_INET_Addr.cpp
	${ACE_PATH}/ace/Mutex.cpp
	${ACE_PATH}/ace/NT_Service.cpp
	${ACE_PATH}/ace/Name_Proxy.cpp
	${ACE_PATH}/ace/Name_Request_Reply.cpp
	${ACE_PATH}/ace/Name_Space.cpp
	${ACE_PATH}/ace/Naming_Context.cpp
	${ACE_PATH}/ace/Netlink_Addr.cpp
	${ACE_PATH}/ace/Notification_Queue.cpp
	${ACE_PATH}/ace/Notification_Strategy.cpp
	${ACE_PATH}/ace/Null_Mutex.cpp
	${ACE_PATH}/ace/OS_Errno.cpp
	${ACE_PATH}/ace/OS_Log_Msg_Attributes.cpp
	${ACE_PATH}/ace/OS_NS_Thread.cpp
	${ACE_PATH}/ace/OS_NS_arpa_inet.cpp
	${ACE_PATH}/ace/OS_NS_ctype.cpp
	${ACE_PATH}/ace/OS_NS_devctl.cpp
	${ACE_PATH}/ace/OS_NS_dirent.cpp
	${ACE_PATH}/ace/OS_NS_dlfcn.cpp
	${ACE_PATH}/ace/OS_NS_errno.cpp
	${ACE_PATH}/ace/OS_NS_fcntl.cpp
	${ACE_PATH}/ace/OS_NS_math.cpp
	${ACE_PATH}/ace/OS_NS_netdb.cpp
	${ACE_PATH}/ace/OS_NS_poll.cpp
	${ACE_PATH}/ace/OS_NS_pwd.cpp
	${ACE_PATH}/ace/OS_NS_regex.cpp
	${ACE_PATH}/ace/OS_NS_signal.cpp
	${ACE_PATH}/ace/OS_NS_stdio.cpp
	${ACE_PATH}/ace/OS_NS_stdlib.cpp
	${ACE_PATH}/ace/OS_NS_string.cpp
	${ACE_PATH}/ace/OS_NS_strings.cpp
	${ACE_PATH}/ace/OS_NS_stropts.cpp
	${ACE_PATH}/ace/OS_NS_sys_mman.cpp
	${ACE_PATH}/ace/OS_NS_sys_msg.cpp
	${ACE_PATH}/ace/OS_NS_sys_resource.cpp
	${ACE_PATH}/ace/OS_NS_sys_select.cpp
	${ACE_PATH}/ace/OS_NS_sys_sendfile.cpp
	${ACE_PATH}/ace/OS_NS_sys_shm.cpp
	${ACE_PATH}/ace/OS_NS_sys_socket.cpp
	${ACE_PATH}/ace/OS_NS_sys_stat.cpp
	${ACE_PATH}/ace/OS_NS_sys_time.cpp
	${ACE_PATH}/ace/OS_NS_sys_uio.cpp
	${ACE_PATH}/ace/OS_NS_sys_utsname.cpp
	${ACE_PATH}/ace/OS_NS_sys_wait.cpp
	${ACE_PATH}/ace/OS_NS_time.cpp
	${ACE_PATH}/ace/OS_NS_unistd.cpp
	${ACE_PATH}/ace/OS_NS_wchar.cpp
	${ACE_PATH}/ace/OS_NS_wctype.cpp
	${ACE_PATH}/ace/OS_QoS.cpp
	${ACE_PATH}/ace/OS_TLI.cpp
	${ACE_PATH}/ace/OS_Thread_Adapter.cpp
	${ACE_PATH}/ace/OS_main.cpp
	${ACE_PATH}/ace/Obchunk.cpp
	${ACE_PATH}/ace/Object_Manager.cpp
	${ACE_PATH}/ace/Object_Manager_Base.cpp
	${ACE_PATH}/ace/Obstack.cpp
	${ACE_PATH}/ace/PI_Malloc.cpp
	${ACE_PATH}/ace/POSIX_Asynch_IO.cpp
	${ACE_PATH}/ace/POSIX_CB_Proactor.cpp
	${ACE_PATH}/ace/POSIX_Proactor.cpp
	${ACE_PATH}/ace/Pagefile_Memory_Pool.cpp
	${ACE_PATH}/ace/Parse_Node.cpp
	${ACE_PATH}/ace/Ping_Socket.cpp
	${ACE_PATH}/ace/Pipe.cpp
	${ACE_PATH}/ace/Priority_Reactor.cpp
	${ACE_PATH}/ace/Proactor.cpp
	${ACE_PATH}/ace/Proactor_Impl.cpp
	${ACE_PATH}/ace/Process.cpp
	${ACE_PATH}/ace/Process_Manager.cpp
	${ACE_PATH}/ace/Process_Mutex.cpp
	${ACE_PATH}/ace/Process_Semaphore.cpp
	${ACE_PATH}/ace/Profile_Timer.cpp
	${ACE_PATH}/ace/RW_Mutex.cpp
	${ACE_PATH}/ace/RW_Process_Mutex.cpp
	${ACE_PATH}/ace/RW_Thread_Mutex.cpp
	${ACE_PATH}/ace/Reactor.cpp
	${ACE_PATH}/ace/Reactor_Impl.cpp
	${ACE_PATH}/ace/Reactor_Notification_Strategy.cpp
	${ACE_PATH}/ace/Reactor_Timer_Interface.cpp
	${ACE_PATH}/ace/Read_Buffer.cpp
	${ACE_PATH}/ace/Recursive_Thread_Mutex.cpp
	${ACE_PATH}/ace/Recyclable.cpp
	${ACE_PATH}/ace/Registry.cpp
	${ACE_PATH}/ace/Registry_Name_Space.cpp
	${ACE_PATH}/ace/Remote_Name_Space.cpp
	${ACE_PATH}/ace/Remote_Tokens.cpp
	${ACE_PATH}/ace/Rtems_init.c
	${ACE_PATH}/ace/SOCK.cpp
	${ACE_PATH}/ace/SOCK_Acceptor.cpp
	${ACE_PATH}/ace/SOCK_CODgram.cpp
	${ACE_PATH}/ace/SOCK_Connector.cpp
	${ACE_PATH}/ace/SOCK_Dgram.cpp
	${ACE_PATH}/ace/SOCK_Dgram_Bcast.cpp
	${ACE_PATH}/ace/SOCK_Dgram_Mcast.cpp
	${ACE_PATH}/ace/SOCK_IO.cpp
	${ACE_PATH}/ace/SOCK_Netlink.cpp
	${ACE_PATH}/ace/SOCK_SEQPACK_Acceptor.cpp
	${ACE_PATH}/ace/SOCK_SEQPACK_Association.cpp
	${ACE_PATH}/ace/SOCK_SEQPACK_Connector.cpp
	${ACE_PATH}/ace/SOCK_Stream.cpp
	${ACE_PATH}/ace/SPIPE.cpp
	${ACE_PATH}/ace/SPIPE_Acceptor.cpp
	${ACE_PATH}/ace/SPIPE_Addr.cpp
	${ACE_PATH}/ace/SPIPE_Connector.cpp
	${ACE_PATH}/ace/SPIPE_Stream.cpp
	${ACE_PATH}/ace/SString.cpp
	${ACE_PATH}/ace/SUN_Proactor.cpp
	${ACE_PATH}/ace/SV_Message.cpp
	${ACE_PATH}/ace/SV_Message_Queue.cpp
	${ACE_PATH}/ace/SV_Semaphore_Complex.cpp
	${ACE_PATH}/ace/SV_Semaphore_Simple.cpp
	${ACE_PATH}/ace/SV_Shared_Memory.cpp
	${ACE_PATH}/ace/Sample_History.cpp
	${ACE_PATH}/ace/Sbrk_Memory_Pool.cpp
	${ACE_PATH}/ace/Sched_Params.cpp
	${ACE_PATH}/ace/Select_Reactor_Base.cpp
	${ACE_PATH}/ace/Semaphore.cpp
	${ACE_PATH}/ace/Service_Config.cpp
	${ACE_PATH}/ace/Service_Gestalt.cpp
	${ACE_PATH}/ace/Service_Manager.cpp
	${ACE_PATH}/ace/Service_Object.cpp
	${ACE_PATH}/ace/Service_Repository.cpp
	${ACE_PATH}/ace/Service_Types.cpp
	${ACE_PATH}/ace/Shared_Memory.cpp
	${ACE_PATH}/ace/Shared_Memory_MM.cpp
	${ACE_PATH}/ace/Shared_Memory_Pool.cpp
	${ACE_PATH}/ace/Shared_Memory_SV.cpp
	${ACE_PATH}/ace/Shared_Object.cpp
	${ACE_PATH}/ace/Sig_Adapter.cpp
	${ACE_PATH}/ace/Sig_Handler.cpp
	${ACE_PATH}/ace/Signal.cpp
	${ACE_PATH}/ace/Sock_Connect.cpp
	${ACE_PATH}/ace/Stack_Trace.cpp
	${ACE_PATH}/ace/Stats.cpp
	${ACE_PATH}/ace/String_Base_Const.cpp
	${ACE_PATH}/ace/Svc_Conf_Lexer.cpp
	${ACE_PATH}/ace/Svc_Conf_y.cpp
	${ACE_PATH}/ace/Synch_Options.cpp
	${ACE_PATH}/ace/System_Time.cpp
	${ACE_PATH}/ace/TLI.cpp
	${ACE_PATH}/ace/TLI_Acceptor.cpp
	${ACE_PATH}/ace/TLI_Connector.cpp
	${ACE_PATH}/ace/TLI_Stream.cpp
	${ACE_PATH}/ace/TP_Reactor.cpp
	${ACE_PATH}/ace/TSS_Adapter.cpp
	${ACE_PATH}/ace/TTY_IO.cpp
	${ACE_PATH}/ace/Task.cpp
	${ACE_PATH}/ace/Thread.cpp
	${ACE_PATH}/ace/Thread_Adapter.cpp
	${ACE_PATH}/ace/Thread_Control.cpp
	${ACE_PATH}/ace/Thread_Exit.cpp
	${ACE_PATH}/ace/Thread_Hook.cpp
	${ACE_PATH}/ace/Thread_Manager.cpp
	${ACE_PATH}/ace/Thread_Mutex.cpp
	${ACE_PATH}/ace/Thread_Semaphore.cpp
	${ACE_PATH}/ace/Throughput_Stats.cpp
	${ACE_PATH}/ace/Time_Policy.cpp
	${ACE_PATH}/ace/Time_Value.cpp
	${ACE_PATH}/ace/Timeprobe.cpp
	${ACE_PATH}/ace/Token.cpp
	${ACE_PATH}/ace/Token_Collection.cpp
	${ACE_PATH}/ace/Token_Invariants.cpp
	${ACE_PATH}/ace/Token_Manager.cpp
	${ACE_PATH}/ace/Token_Request_Reply.cpp
	${ACE_PATH}/ace/Trace.cpp
	${ACE_PATH}/ace/UNIX_Addr.cpp
	${ACE_PATH}/ace/UPIPE_Acceptor.cpp
	${ACE_PATH}/ace/UPIPE_Connector.cpp
	${ACE_PATH}/ace/UPIPE_Stream.cpp
	${ACE_PATH}/ace/UTF16_Encoding_Converter.cpp
	${ACE_PATH}/ace/UTF32_Encoding_Converter.cpp
	${ACE_PATH}/ace/UTF8_Encoding_Converter.cpp
	${ACE_PATH}/ace/UUID.cpp
	${ACE_PATH}/ace/WFMO_Reactor.cpp
	${ACE_PATH}/ace/WIN32_Asynch_IO.cpp
	${ACE_PATH}/ace/WIN32_Proactor.cpp
	${ACE_PATH}/ace/XML_Svc_Conf.cpp
	${ACE_PATH}/ace/XTI_ATM_Mcast.cpp
	${ACE_PATH}/ace/ace_wchar.cpp)

### Library
add_library(ACE STATIC ${ACE_CXX_SRCS})
set_target_properties (ACE PROPERTIES VERSION ${ACE_VERSION})
add_definitions(-DACE_AS_STATIC_LIBS)
add_definitions(-D__ACE_INLINE__)

if(MSVC)
	add_definitions(-D_CRT_NONSTDC_NO_WARNINGS)
	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
	add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
	add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
	add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS)

	if(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]$")
		add_definitions(-D_ARM_)
		add_definitions(-D_ARM)
	elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64$")
		add_definitions(-D_ARM64_)
		add_definitions(-D_ARM64)
	endif()
endif()

target_include_directories(ACE PUBLIC ${ACE_PATH})
if (WIN32)
	target_link_libraries(ACE iphlpapi.lib)
endif ()

### Installation
if(NOT SKIP_INSTALL)
	## Install headers
	install(DIRECTORY "${ACE_PATH}/ace" # source directory
			DESTINATION "${INSTALL_INC_DIR}" # target directory
			FILES_MATCHING # install only matched files
			PATTERN "*.h" # select header files
			PATTERN "*.inl" # select header files
	)

	## Install library
	install(TARGETS ACE
			RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
			ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
			LIBRARY DESTINATION "${INSTALL_LIB_DIR}")
endif(NOT SKIP_INSTALL)

message(STATUS "")
message(STATUS "        ---( libscone_masi " ${VERSION} " )---")
message(STATUS "")
message(STATUS "CMAKE_INSTALL_PREFIX:     ${CMAKE_INSTALL_PREFIX}")
message(STATUS "CMAKE_BINARY_DIR:         ${CMAKE_BINARY_DIR}")
message(STATUS "CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
message(STATUS "CMAKE_SOURCE_DIR:         ${CMAKE_SOURCE_DIR}")
message(STATUS "CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}")
message(STATUS "PROJECT_BINARY_DIR:       ${PROJECT_BINARY_DIR}")
message(STATUS "PROJECT_SOURCE_DIR:       ${PROJECT_SOURCE_DIR}")
message(STATUS "CMAKE_MODULE_PATH:        ${CMAKE_MODULE_PATH}")
message(STATUS "CMAKE_COMMAND:            ${CMAKE_COMMAND}")
message(STATUS "CMAKE_ROOT:               ${CMAKE_ROOT}")
message(STATUS "CMAKE_SYSTEM:             ${CMAKE_SYSTEM}")
message(STATUS "CMAKE_SYSTEM_NAME:        ${CMAKE_SYSTEM_NAME}")
message(STATUS "CMAKE_SYSTEM_VERSION:     ${CMAKE_SYSTEM_VERSION}")
message(STATUS "CMAKE_SYSTEM_PROCESSOR:   ${CMAKE_SYSTEM_PROCESSOR}")
message(STATUS "CMAKE_SKIP_RPATH:         ${CMAKE_SKIP_RPATH}")
message(STATUS "CMAKE_VERBOSE_MAKEFILE:   ${CMAKE_VERBOSE_MAKEFILE}")
message(STATUS "CMAKE_BUILD_TYPE:         ${CMAKE_BUILD_TYPE}")
message(STATUS "CMAKE_C_COMPILER:         ${CMAKE_C_COMPILER} (id ${CMAKE_C_COMPILER_ID}, clang ${CLANG}, GNUC ${GNUC})")
if (CMAKE_COMPILER_IS_GNUCXX)
	message(STATUS "CMAKE_CXX_COMPILER:         ${CMAKE_CXX_COMPILER} (ver ${CMAKE_CXX_COMPILER_VERSION})")
else ()
	message(STATUS "CMAKE_CXX_COMPILER:         ${CMAKE_CXX_COMPILER}")
endif ()
message(STATUS "CMAKE_AR:                 ${CMAKE_AR}")
message(STATUS "CMAKE_RANLIB:             ${CMAKE_RANLIB}")
message(STATUS "CMAKE_CXX_FLAGS:          ${CMAKE_CXX_FLAGS}")
message(STATUS "C++ flags (Release):      ${CMAKE_CXX_FLAGS_RELEASE}")
message(STATUS "C++ flags (Debug):        ${CMAKE_CXX_FLAGS_DEBUG}")
message(STATUS "CMAKE_C_FLAGS:            ${CMAKE_C_FLAGS}")
message(STATUS "C flags (Release):        ${CMAKE_C_FLAGS_RELEASE}")
message(STATUS "C flags (Debug):          ${CMAKE_C_FLAGS_DEBUG}")
if (WIN32)
	message(STATUS "Linker flags (Release):  ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
	message(STATUS "Linker flags (Debug):    ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
else ()
	message(STATUS "Linker flags (Release):  ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
	message(STATUS "Linker flags (Debug):    ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
endif ()

But, the thing is, when ACE is upgraded, CMake file need to be updated too and the bad thing is this CMake file doesn't contain all build options from MPC:

  • C Flags, CXX Flags
  • Macro definitions
  • System dependency libraries linker

Since I don't work with Perl, so I created this issue for MPC CMake support.

@mitza-oci
Copy link
Member

We have evidence that libACE does not needs to be built by CMake to be consumed by a downstream CMake project: see github.com/objectcomputing/OpenDDS. Whether or not libACE should be built CMake I guess is a matter of opinion, but you can see what some of the issues are.

Since this particular GitHub Issue is in the MPC repository and not in ACE_TAO, we should focus on the process of adding a new "type" to MPC. You can certainly do that. The documentation and examples you'd need are all here in the repository. The code to do this isn't really in Perl, it's in a template language. There is some Perl support code needed which you can basically copy and paste.

If this isn't a project you'd like to take on, consider sponsoring a company like the one I work for (which designed and wrote MPC) to do it.

@jwillemsen
Copy link
Member

See #164

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants