Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ message("System TANGO_HOST=$ENV{TANGO_HOST}")
set(TANGO_HOST $ENV{TANGO_HOST})
include(configure/CMakeLists.txt)

include_directories(generated)
include_directories(${PROJECT_BINARY_DIR}/generated)
include_directories(include)
#required for generated config.h
include_directories(${PROJECT_BINARY_DIR}/include)
Expand Down
31 changes: 7 additions & 24 deletions generated/idl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,14 @@
message("Generate tango.h, tangoSK.cpp and tangoDybSK.cpp from idl")

execute_process(COMMAND ${OMNIIDL_PATH}omniidl -I${IDL_PKG_INCLUDE_DIRS} -bcxx -Wbh=.h -Wbs=SK.cpp -Wbd=DynSK.cpp -Wba ${IDL_PKG_INCLUDE_DIRS}/tango.idl
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE FAILED)

if(${FAILED})
message(SEND_ERROR " Failed to generate source files from idl. rv=${FAILED}")
endif()

FILE(GLOB ENHANCEMENTS Enhance*)

foreach(ENHANCEMENT ${ENHANCEMENTS})
message("Applying enhancement ${ENHANCEMENT}")
execute_process(COMMAND sed -i -f ${ENHANCEMENT} tango.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE FAILED)

#non-zero
if(${FAILED})
message(SEND_ERROR " Failed to apply ${ENHANCEMENT}. rv=${FAILED}")
endif()
endforeach(ENHANCEMENT)
add_custom_command(
OUTPUT tango.h tangoSK.cpp tangoDynSK.cpp
COMMAND ${CMAKE_COMMAND} -DOMNIIDL_PATH=${OMNIIDL_PATH} -DIDL_PKG_INCLUDE_DIRS=${IDL_PKG_INCLUDE_DIRS}
-DCMAKE_INSTALL_FULL_INCLUDEDIR=${CMAKE_INSTALL_FULL_INCLUDEDIR} -DPATCHES_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/generate.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

set(SOURCES tangoSK.cpp
tangoDynSK.cpp)

add_library(idl_objects OBJECT ${SOURCES} tango.h)
target_compile_options(idl_objects PRIVATE -fPIC)

install(FILES tango.h DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/idl")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tango.h DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/idl")
26 changes: 26 additions & 0 deletions generated/idl/generate.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
message("Generate tango.h, tangoSK.cpp and tangoDybSK.cpp from idl")
message("Using OMNIIDL_PATH=${OMNIIDL_PATH}")
message("Using IDL=${IDL_PKG_INCLUDE_DIRS}")

execute_process(COMMAND ${OMNIIDL_PATH}omniidl -I${IDL_PKG_INCLUDE_DIRS} -bcxx -Wbh=.h -Wbs=SK.cpp -Wbd=DynSK.cpp -Wba ${IDL_PKG_INCLUDE_DIRS}/tango.idl
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
RESULT_VARIABLE FAILED)

if(${FAILED})
message(SEND_ERROR " Failed to generate source files from idl. rv=${FAILED}")
endif()

message("Using PATCHES_SOURCE_DIR=${PATCHES_SOURCE_DIR}")

FILE(GLOB ENHANCEMENTS ${PATCHES_SOURCE_DIR}/Enhance*)

foreach(ENHANCEMENT ${ENHANCEMENTS})
message("Applying enhancement ${ENHANCEMENT}")
execute_process(COMMAND sed -i -f ${ENHANCEMENT} tango.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
RESULT_VARIABLE FAILED)
#non-zero
if(${FAILED})
message(SEND_ERROR " Failed to apply ${ENHANCEMENT}. rv=${FAILED}")
endif()
endforeach(ENHANCEMENT)