diff --git a/config/FindACE.cmake b/config/FindACE.cmake index 66fb4a37e..1040db0f9 100644 --- a/config/FindACE.cmake +++ b/config/FindACE.cmake @@ -27,13 +27,26 @@ ENDIF () # If ACE_ROOT is available, set up our hints IF (ACE_ROOT) - SET (ACE_INCLUDE_HINTS "${ACE_INCLUDE_HINTS}" "${ACE_ROOT}/include" "${ACE_ROOT}") - SET (ACE_LIBRARY_HINTS "${ACE_LIBRARY_HINTS}" "${ACE_ROOT}/lib") + SET (ACE_INCLUDE_HINTS HINTS "${ACE_ROOT}/include" "${ACE_ROOT}") + SET (ACE_LIBRARY_HINTS HINTS "${ACE_ROOT}/lib") ENDIF () # Find headers and libraries -find_path(ACE_INCLUDE_DIR "ace/ACE.h" ${ACE_INCLUDE_HINTS}) -find_library(ACE_LIBRARY NAMES ACE ACEd HINTS ${ACE_LIBRARY_HINTS}) +find_path(ACE_INCLUDE_DIR NAMES ace/ACE.h ${ACE_INCLUDE_HINTS}) +find_library(ACE_LIBRARY NAMES ACE ${ACE_LIBRARY_HINTS}) +find_library(ACED_LIBRARY NAMES ACE${CMAKE_DEBUG_POSTFIX} ${ACE_LIBRARY_HINTS}) +# Set ACE_LIBRARY ala boost: debug;libdebug;optimized;lib +if (ACE_LIBRARY) + #message("ACE_LIBRARY found: ${ACE_LIBRARY}") + SET(ACE_LIBRARY optimized ${ACE_LIBRARY}) +else() + SET(ACE_LIBRARY "") +endif() +if (ACED_LIBRARY) + #message("ACED_LIBRARY found: ${ACED_LIBRARY}") + SET(ACE_LIBRARY debug ${ACED_LIBRARY} ${ACE_LIBRARY}) +endif() + # Set ACE_FOUND honoring the QUIET and REQUIRED arguments find_package_handle_standard_args(ACE DEFAULT_MSG ACE_LIBRARY ACE_INCLUDE_DIR) @@ -47,7 +60,7 @@ if(ACE_FOUND) set(ACE_LIBRARIES ${ACE_LIBRARY}) # Link dirs - get_filename_component(ACE_LIBRARY_DIRS ${ACE_LIBRARY} PATH) + #get_filename_component(ACE_LIBRARY_DIRS ${ACE_LIBRARY} PATH) endif() # Advanced options for not cluttering the cmake UIs diff --git a/config/FindCorba.cmake b/config/FindCorba.cmake index d6674214c..c0f0f7d91 100644 --- a/config/FindCorba.cmake +++ b/config/FindCorba.cmake @@ -3,7 +3,7 @@ # if (ENABLE_CORBA) SET(CORBA_FOUND) - IF(${CORBA_IMPLEMENTATION} STREQUAL "TAO") + IF( CORBA_IMPLEMENTATION STREQUAL "TAO") # Look for TAO and ACE if(${OROCOS_TARGET} MATCHES "win32") set(XTRA_TAO_LIBS AnyTypeCode ValueType) #note: capital T @@ -34,7 +34,7 @@ if (ENABLE_CORBA) set(CORBA_USER_LINK_LIBS ${TAO_CLIENT_LIBRARIES}) ENDIF(NOT TAO_FOUND) - ELSEIF(${CORBA_IMPLEMENTATION} STREQUAL "OMNIORB") + ELSEIF(CORBA_IMPLEMENTATION STREQUAL "OMNIORB") find_package(OmniORB REQUIRED) SET(CORBA_FOUND ${OMNIORB4_FOUND}) IF(NOT OMNIORB4_FOUND) @@ -54,13 +54,13 @@ if (ENABLE_CORBA) set(CORBA_USER_LINK_LIBS ${OMNIORB4_CLIENT_LIBRARIES} ) ENDIF(NOT OMNIORB4_FOUND) - ELSE(${CORBA_IMPLEMENTATION} STREQUAL "TAO") + ELSE(CORBA_IMPLEMENTATION STREQUAL "TAO") MESSAGE(FATAL_ERROR "Unknown CORBA implementation '${CORBA_IMPLEMENTATION}': must be TAO or OMNIORB.") - ENDIF(${CORBA_IMPLEMENTATION} STREQUAL "TAO") + ENDIF(CORBA_IMPLEMENTATION STREQUAL "TAO") - # Bail if we were required to find all components and missed at least one - IF (CORBA_FIND_REQUIRED AND NOT CORBA_FOUND) + # Bail if we were required to find all components and missed at least one + IF (CORBA_FIND_REQUIRED AND NOT CORBA_FOUND) MESSAGE (FATAL_ERROR "Could not find CORBA") - ENDIF () + ENDIF () endif (ENABLE_CORBA) diff --git a/config/FindTAO.cmake b/config/FindTAO.cmake index b6c99a8ff..6ed147245 100644 --- a/config/FindTAO.cmake +++ b/config/FindTAO.cmake @@ -13,8 +13,6 @@ SET (TAO_LIBRARIES "") SET (TAO_INCLUDE_DIRS "") SET (TAO_DEFINITIONS "") -SET (TAO_DEBUG_SUFFIX "d") - # Verify that we got some ACE up in this joint FIND_PACKAGE (ACE) IF (ACE_FOUND) @@ -43,17 +41,29 @@ ENDIF () # If TAO_ROOT is available, set up our hints IF (TAO_ROOT) - SET (TAO_INCLUDE_HINTS "${TAO_INCLUDE_HINTS}" "${TAO_ROOT}/include" "${TAO_ROOT}/TAO" "${TAO_ROOT}") - SET (TAO_LIBRARY_HINTS "${TAO_LIBRARY_HINTS}" "${TAO_ROOT}/lib") - SET (TAO_RUNTIME_HINTS "${TAO_RUNTIME_HINTS}" "${TAO_ROOT}/bin") + SET (TAO_INCLUDE_HINTS HINTS "${TAO_ROOT}/include" "${TAO_ROOT}/TAO" "${TAO_ROOT}") + SET (TAO_LIBRARY_HINTS HINTS "${TAO_ROOT}/lib" "${ACE_ROOT}/lib") + SET (TAO_RUNTIME_HINTS HINTS "${TAO_ROOT}/bin" "${ACE_ROOT}/bin") ENDIF () # See if headers are present. -find_path(TAO_INCLUDE_DIR "tao/corba.h" HINTS ${TAO_INCLUDE_HINTS}) -find_library (TAO_LIBRARY NAMES TAO TAOd HINTS ${TAO_LIBRARY_HINTS}) +find_path(TAO_INCLUDE_DIR NAMES "tao/corba.h" ${TAO_INCLUDE_HINTS}) +find_library (TAO_LIBRARY NAMES TAO ${TAO_LIBRARY_HINTS}) +find_library (TAOD_LIBRARY NAMES TAO${CMAKE_DEBUG_POSTFIX} ${TAO_LIBRARY_HINTS}) +# Set TAO_LIBRARY ala boost: debug;libdebug;optimized;lib +if (TAO_LIBRARY) + #message("TAO_LIBRARY found: ${TAO_LIBRARY}") + SET(TAO_LIBRARY optimized ${TAO_LIBRARY}) +else() + SET(TAO_LIBRARY "") +endif() +if (TAOD_LIBRARY) + #message("TAOD_LIBRARY found: ${TAOD_LIBRARY}") + SET(TAO_LIBRARY debug ${TAOD_LIBRARY} ${TAO_LIBRARY}) +endif() # A test for seeing which version of TAO.. :-( -find_path(TAO_15 "tao/AnyTypeCode/Any.h" HINTS ${TAO_INCLUDE_HINTS} ) +find_path(TAO_15 NAMES "tao/AnyTypeCode/Any.h" ${TAO_INCLUDE_HINTS} ) IF (TAO_INCLUDE_DIR AND TAO_LIBRARY) SET (TAO_TAO_FOUND TRUE) @@ -63,13 +73,13 @@ IF (TAO_INCLUDE_DIR AND TAO_LIBRARY) list (APPEND TAO_CLIENT_LIBRARIES ${TAO_LIBRARY}) ELSE () SET (TAO_FOUND FALSE) - LIST (APPEND TAO_MISSING_COMPONENTS ${TAO}) + LIST (APPEND TAO_MISSING_COMPONENTS "TAO") ENDIF () MARK_AS_ADVANCED (TAO_INCLUDE_DIR TAO_LIBRARY) # try to find orbsvcs. May be in two locations. IF (NOT ORBSVCS_DIR ) - find_path(TAO_ORBSVCS "orbsvcs/CosNaming.idl" HINTS ${TAO_INCLUDE_HINTS} PATH_SUFFIXES "orbsvcs" ) + find_path(TAO_ORBSVCS NAMES "orbsvcs/CosNaming.idl" ${TAO_INCLUDE_HINTS} PATH_SUFFIXES orbsvcs ) SET( ORBSVCS_DIR ${TAO_ORBSVCS} ) ENDIF (NOT ORBSVCS_DIR ) @@ -100,7 +110,7 @@ IF (ACE_FOUND AND TAO_FOUND AND TAO_ORBSVCS ) FOREACH (COMPONENT ${TAO_FIND_COMPONENTS}) IF (COMPONENT STREQUAL "IDL") # special case for the IDL compiler program - FIND_PROGRAM (TAO_IDL_EXECUTABLE "tao_idl" HINTS ${TAO_RUNTIME_HINTS}) + FIND_PROGRAM (TAO_IDL_EXECUTABLE "tao_idl" ${TAO_RUNTIME_HINTS}) IF (TAO_IDL_EXECUTABLE) SET (TAO_IDL_FOUND TRUE) LIST (APPEND TAO_FOUND_COMPONENTS "IDL") @@ -112,7 +122,17 @@ IF (ACE_FOUND AND TAO_FOUND AND TAO_ORBSVCS ) MARK_AS_ADVANCED (TAO_IDL_EXECUTABLE) ELSE () # Find a TAO shared library - FIND_LIBRARY (TAO_${COMPONENT}_LIBRARY NAMES "TAO_${COMPONENT}" "TAO_${COMPONENT}d" HINTS ${TAO_LIBRARY_HINTS}) + FIND_LIBRARY (TAO_${COMPONENT}_LIBRARY NAMES "TAO_${COMPONENT}" ${TAO_LIBRARY_HINTS}) + FIND_LIBRARY (TAO_${COMPONENT}D_LIBRARY NAMES "TAO_${COMPONENT}${CMAKE_DEBUG_POSTFIX}" ${TAO_LIBRARY_HINTS}) + # Set TAO_LIBRARY ala boost: debug;libdebug;optimized;lib + if (TAO_${COMPONENT}_LIBRARY) + SET(TAO_${COMPONENT}_LIBRARY optimized ${TAO_${COMPONENT}_LIBRARY}) + else() + SET(TAO_${COMPONENT}_LIBRARY "") + endif() + if (TAO_${COMPONENT}D_LIBRARY) + SET(TAO_${COMPONENT}_LIBRARY debug ${TAO_${COMPONENT}D_LIBRARY} ${TAO_${COMPONENT}_LIBRARY}) + endif() IF (TAO_${COMPONENT}_LIBRARY) SET (TAO_${COMPONENT}_FOUND TRUE) LIST (APPEND TAO_FOUND_COMPONENTS ${COMPONENT}) @@ -149,22 +169,15 @@ IF (ACE_FOUND AND TAO_FOUND AND TAO_ORBSVCS ) ENDIF( NOT TAO_IDL_FOUND ) - # Add debug libraries for windows build - IF (WIN32) - SET (TAO_LIBRARIES_WIN "") - FOREACH (LIB ${TAO_LIBRARIES}) - STRING (REGEX REPLACE "(.*)\\.([^\\.]*)" "\\1${TAO_DEBUG_SUFFIX}.\\2" LIBD ${LIB}) - SET(TAO_LIBRARIES_WIN "${TAO_LIBRARIES_WIN}" "debug" "${LIBD}" "optimized" "${LIB}") - ENDFOREACH () - SET(TAO_LIBRARIES ${TAO_LIBRARIES_WIN}) - ENDIF () +else (ACE_FOUND AND TAO_FOUND AND TAO_ORBSVCS ) + MESSAGE( "Not all found: ACE:${ACE_FOUND}; TAO:${TAO_FOUND}; ORBSVCS:${TAO_ORBSVCS}") ENDIF (ACE_FOUND AND TAO_FOUND AND TAO_ORBSVCS ) MARK_AS_ADVANCED( TAO_15 TAO_ORBSVCS ) # Bail if we were required to find all components and missed at least one IF (TAO_FIND_REQUIRED AND NOT TAO_FOUND) - MESSAGE (FATAL_ERROR "Could not find TAO: Missing components " ${TAO_MISSING_COMPONENTS}) + MESSAGE (FATAL_ERROR "Could not find TAO. Missing components: " ${TAO_MISSING_COMPONENTS}) ENDIF ()