Add CMake generation support
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?
See also https://github.com/DOCGroup/ACE_TAO/issues/266
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?
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.
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.
See https://github.com/DOCGroup/MPC/pull/164