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
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.0)
project(libtango)
include(CTest)

Expand All @@ -20,7 +20,8 @@ include(configure/CMakeLists.txt)
include_directories(cppapi/client)
include_directories(cppapi/client/helpers)
include_directories(cppapi/server)
include_directories(cppapi/server/idl)
#required for idl/tango.h
include_directories(${CMAKE_CURRENT_BINARY_DIR}/cppapi/server)
include_directories(log4tango/include)
#required for generated config.h
include_directories(${CMAKE_CURRENT_BINARY_DIR}/log4tango/include)
Expand Down Expand Up @@ -54,3 +55,10 @@ configure_file(tango.pc.cmake tango.pc @ONLY)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tango.pc"
DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig")

# This is a convenient target to be able to test the installation part from CLion IDE
# Just select the install_libtango target and build (not execute) this target
# This will do the equivalent of make install from CLion
add_custom_target(install_${PROJECT_NAME}
$(MAKE) install
COMMENT "Installing ${PROJECT_NAME}")
3 changes: 2 additions & 1 deletion cppapi/client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,6 @@ add_subdirectory(helpers)

add_library(client_objects OBJECT ${SOURCES})
target_compile_options(client_objects PRIVATE -fPIC)
add_dependencies(client_objects idl_objects)

install(FILES ${HEADERS} DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
install(FILES ${HEADERS} DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
3 changes: 2 additions & 1 deletion cppapi/server/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -137,5 +137,6 @@ add_subdirectory(jpeg_mmx)

add_library(server_objects OBJECT ${SOURCES})
target_compile_options(server_objects PRIVATE -fPIC)
add_dependencies(server_objects idl_objects)

install(FILES ${HEADERS} DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
install(FILES ${HEADERS} DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
35 changes: 8 additions & 27 deletions cppapi/server/idl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,34 +1,15 @@
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_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/CMakeLists.txt
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")

27 changes: 27 additions & 0 deletions cppapi/server/idl/generate/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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)