Skip to content

Commit

Permalink
cmake: manually merge new FindACE/TAO macros to take into account opt…
Browse files Browse the repository at this point in the history
…imized/debug libs.

Signed-off-by: Peter Soetens <[email protected]>
  • Loading branch information
Peter Soetens committed Aug 27, 2010
1 parent f07930c commit 8d90d84
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 34 deletions.
23 changes: 18 additions & 5 deletions config/FindACE.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down
14 changes: 7 additions & 7 deletions config/FindCorba.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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)
57 changes: 35 additions & 22 deletions config/FindTAO.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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 )

Expand Down Expand Up @@ -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")
Expand All @@ -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})
Expand Down Expand Up @@ -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 ()


Expand Down

0 comments on commit 8d90d84

Please sign in to comment.