# this option was set in global_rules.cmake
IF(ENABLE_CORBA)
  MESSAGE( "Building CORBA Transport library.")

  INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/src ${PROJ_BINARY_DIR}/src/os ${PROJ_BINARY_DIR}/src/os/${OROCOS_TARGET})
 
  INCLUDE_DIRECTORIES(${CORBA_INCLUDE_DIRS})
  LINK_DIRECTORIES(${CORBA_LINK_DIRECTORIES})

#  STRING(REPLACE ";" "  " RTT_CORBA_CFLAGS2 "${CORBA_CFLAGS}")
#  MESSAGE(STATUS "YYY ${RTT_CORBA_CFLAGS2}")
#  SET(RTT_CORBA_CFLAGS "${RTT_CFLAGS} ${RTT_CORBA_CFLAGS2}")
#  MESSAGE(STATUS "YYY ${RTT_CORBA_CFLAGS}")
#  SET(RTT_CORBA_LINKFLAGS ${RTT_CFLAGS} ${CORBA_LDFLAGS})
#  LINK_LIBRARIES( ${CORBA_LIBRARIES} )

  FILE( GLOB IDLS [^.]*.idl )
  FILE( GLOB CPPS [^.]*.cpp )
  FILE( GLOB HPPS [^.]*.hpp [^.]*.h [^.]*.inl)

  # exclude some files:
  LIST( REMOVE_ITEM HPPS CorbaDataObject.hpp CorbaBuffer.hpp)

  ORO_ADD_CORBA_SERVERS(CPPS HPPS ${IDLS} )
  SET( ENV{GLOBAL_GENERATED_SRCS} "${CPPS}" )

  #This has been added in order to generate files before make -j<N>
  # make -j<N> causes corruption of generated files because of overwriting
  ADD_CUSTOM_TARGET( idl DEPENDS ${CPPS} ${HPPS} COMMENT "Generating sources from .idl files")

  #MESSAGE("CPPS: $ENV{GLOBAL_GENERATED_SRCS}")
  #MESSAGE("HPPS: ${HPPS}")
  GLOBAL_ADD_INCLUDE( rtt/corba ${HPPS} OrocosTypes.idl)
  #GLOBAL_ADD_SRC( ${CPPS} )
  INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )

  list(APPEND OROCOS-RTT_DEFINITIONS ${CORBA_DEFINITIONS})

IF ( BUILD_STATIC )
  ADD_LIBRARY(orocos-rtt-corba-static_${OROCOS_TARGET} STATIC ${CPPS})
  SET_TARGET_PROPERTIES( orocos-rtt-corba-static_${OROCOS_TARGET} 
  PROPERTIES DEFINE_SYMBOL "RTT_CORBA_DLL_EXPORT"
  OUTPUT_NAME orocos-rtt-corba-${OROCOS_TARGET}
  CLEAN_DIRECT_OUTPUT 1
  VERSION "${RTT_VERSION}"
  COMPILE_FLAGS "${CMAKE_CXX_FLAGS_ADD}"
  COMPILE_DEFINITIONS "${OROCOS-RTT_DEFINITIONS}")
ENDIF( BUILD_STATIC )

  ADD_LIBRARY(orocos-rtt-corba-dynamic_${OROCOS_TARGET} SHARED ${CPPS})
  TARGET_LINK_LIBRARIES(orocos-rtt-corba-dynamic_${OROCOS_TARGET} 
	orocos-rtt-dynamic_${OROCOS_TARGET}
	${CORBA_LIBRARIES}
	) 
  SET_TARGET_PROPERTIES( orocos-rtt-corba-dynamic_${OROCOS_TARGET} PROPERTIES
  DEFINE_SYMBOL "RTT_CORBA_DLL_EXPORT"
  OUTPUT_NAME orocos-rtt-corba-${OROCOS_TARGET}
  CLEAN_DIRECT_OUTPUT 1
  COMPILE_FLAGS "${CMAKE_CXX_FLAGS_ADD}"
  COMPILE_DEFINITIONS "${OROCOS-RTT_DEFINITIONS}"
  SOVERSION "${RTT_VERSION_MAJOR}.${RTT_VERSION_MINOR}"
  VERSION "${RTT_VERSION}")

create_pc_flags( "${CORBA_DEFINITIONS}" "${CORBA_INCLUDE_DIRS}" "${CORBA_LIBRARIES}" RTT_CORBA_DEFINES RTT_CORBA_CFLAGS RTT_CORBA_LINKFLAGS)
create_pc_flags( "${RTT_DUMMY}" "${RTT_DUMMY}" "${CORBA_USER_LINK_LIBS}" RTT_DUMMY RTT_DUMMY RTT_CORBA_USER_LINKFLAGS)

CONFIGURE_FILE( ${PROJ_SOURCE_DIR}/src/corba/orocos-rtt-corba.pc.in ${PROJ_BINARY_DIR}/src/corba/orocos-rtt-corba-${OROCOS_TARGET}.pc @ONLY)
CONFIGURE_FILE( rtt-corba-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/rtt-corba-config.h @ONLY)

IF ( BUILD_STATIC )
  INSTALL(TARGETS orocos-rtt-corba-static_${OROCOS_TARGET} ARCHIVE DESTINATION lib )
ENDIF( BUILD_STATIC )

  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/orocos-rtt-corba-${OROCOS_TARGET}.pc DESTINATION  lib/pkgconfig )
  INSTALL(TARGETS orocos-rtt-corba-dynamic_${OROCOS_TARGET} LIBRARY DESTINATION lib RUNTIME DESTINATION bin )
  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/rtt-corba-config.h ${IDLS} DESTINATION include/rtt/corba )

ENDIF(ENABLE_CORBA)

