Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
1189c23
Progress #4 (#271)
Oct 6, 2016
2397c68
fix cmake error msg: No such file setup.sh/shutdown.sh
Oct 6, 2016
2ae1f27
Update Doxyfile.cmake
Oct 7, 2016
5a2c328
Update README.md
Oct 7, 2016
cebcd9b
Update CMakeLists.txt
Oct 7, 2016
2120239
Update CMakeLists.txt
Oct 7, 2016
8df9e7a
Link libtango against dl (#277)
Oct 7, 2016
690cc3b
Add cpack (#279)
Oct 7, 2016
6d01436
improve deb control
Oct 11, 2016
561e6af
Update README.md
Oct 13, 2016
d6bc2b9
Update README.md
Oct 13, 2016
30e8ef7
Update README.md
Oct 13, 2016
7957cd7
Update CMakeLists.txt
Oct 14, 2016
1b65156
replace CORBA::string_dup with Tango
Oct 14, 2016
640a31f
Merge pull request #284 from Ingvord/master
Oct 15, 2016
d8f726c
replace CORBA::Type with DevType
Oct 17, 2016
26bd31b
Merge pull request #286 from Ingvord/master
Oct 17, 2016
2b3502d
resolve #275 (#289)
Oct 19, 2016
0d04a7e
close #275
Oct 19, 2016
fa2484a
fix code highlighting in CLion
Oct 24, 2016
1d7900a
fix code highlighting in CLion, 2
Oct 25, 2016
06a372d
Fix bug #301 (SF822)
bourtemb Oct 27, 2016
240f01d
Fix bug #235(SF793) (#306)
bourtemb Nov 2, 2016
a5f30ba
old_tests::polling -> cxx_old_poll
Nov 8, 2016
9f95be7
Create .gitignore
Nov 22, 2016
c16f942
resolve #322 - remove rcsid (#323)
andygotz Dec 1, 2016
64f2bd6
sync with #325 (#326)
Dec 8, 2016
9be80d0
Fix bug SF828
bourtemb Dec 12, 2016
dcbc6b9
Revert changes introduced in svn r28853
bourtemb Dec 12, 2016
2b4643d
Fix bug SF825
bourtemb Dec 14, 2016
0224488
Refactor event_reconnection.sh to cxx test (#331)
Dec 14, 2016
c332f48
start PR
Dec 15, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
90 changes: 90 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Created by .ignore support plugin (hsz.mobi)
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

#force mave: ignore everything not maven related
*.iml
*.ipr
*.iws
.idea/

#ignore release if present
release/

#ignore build if present
build/

# User-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
.idea/dataSources.ids
.idea/dataSources.xml
.idea/dataSources.local.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml

# Gradle:
.idea/gradle.xml
.idea/libraries

# Mongo Explorer plugin:
.idea/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties


12 changes: 10 additions & 2 deletions .travis/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ then
fi
docker exec cpp_tango make -C /home/tango/src/build -j 2
echo "Test log4tango"
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/log4tango; exec ctest -V'
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/test/log4tango; exec ctest -V'
if [ $? -ne "0" ]
then
exit -1
fi
echo "Test cppTango"
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/cpp_test_suite; exec ctest -V'
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/test/cpp_test_suite; exec ctest -V'
if [ $? -ne "0" ]
then
exit -1
fi
36 changes: 23 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 2.8)
project(libtango)
project(tango)
include(CTest)

enable_testing()
Expand All @@ -17,28 +17,27 @@ message("System TANGO_HOST=$ENV{TANGO_HOST}")
set(TANGO_HOST $ENV{TANGO_HOST})
include(configure/CMakeLists.txt)

include_directories(cppapi/client)
include_directories(cppapi/client/helpers)
include_directories(cppapi/server)
include_directories(cppapi/server/idl)
include_directories(log4tango/include)
include_directories(${PROJECT_BINARY_DIR}/generated)
include_directories(include)
#required for generated config.h
include_directories(${CMAKE_CURRENT_BINARY_DIR}/log4tango/include)

include_directories(${PROJECT_BINARY_DIR}/include)

add_subdirectory(include)
add_subdirectory(doxygen)
#source code
add_subdirectory("log4tango")
add_subdirectory("cppapi")
add_subdirectory("cpp_test_suite")
add_subdirectory(generated/idl)
add_subdirectory(src)
add_subdirectory(test)

add_library(tango SHARED $<TARGET_OBJECTS:log4tango_objects>
$<TARGET_OBJECTS:client_objects>
$<TARGET_OBJECTS:idl_objects>
$<TARGET_OBJECTS:jpeg_objects>
$<TARGET_OBJECTS:jpeg_mmx_objects>
$<TARGET_OBJECTS:server_objects>)
$<TARGET_OBJECTS:server_objects>
$<TARGET_OBJECTS:include_objects>)
target_include_directories(tango PUBLIC ${ZMQ_PKG_INCLUDE_DIRS} ${OMNIORB_PKG_INCLUDE_DIRS} ${OMNIDYN_PKG_INCLUDE_DIRS})
target_link_libraries(tango PUBLIC ${ZMQ_PKG_LIBRARIES} ${OMNIORB_PKG_LIBRARIES} ${OMNICOS_PKG_LIBRARIES} ${OMNIDYN_PKG_LIBRARIES})
target_link_libraries(tango PUBLIC ${ZMQ_PKG_LIBRARIES} ${OMNIORB_PKG_LIBRARIES} ${OMNICOS_PKG_LIBRARIES} ${OMNIDYN_PKG_LIBRARIES} ${CMAKE_DL_LIBS})
target_compile_options(tango PUBLIC ${ZMQ_PKG_CFLAGS_OTHER} ${OMNIORB_PKG_CFLAGS_OTHER} ${OMNICOS_PKG_CFLAGS_OTHER} ${OMNIDYN_PKG_CFLAGS_OTHER})
target_compile_options(tango PRIVATE -fPIC)
target_compile_definitions(tango PRIVATE OMNI_UNLOADABLE_STUBS _TANGO_LIB)
Expand All @@ -54,3 +53,14 @@ configure_file(tango.pc.cmake tango.pc @ONLY)

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

#TODO windows
SET(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_FILE_NAME libtango_${LIBRARY_VERSION}_amd64) #TODO platform
set(CPACK_DEBIAN_PACKAGE_NAME libtango-dev)
set(CPACK_DEBIAN_PACKAGE_VERSION ${LIBRARY_VERSION})
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libcos4-dev, libzmq5-dev | libzmq3-dev")
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "libtango7-dev, libtango8-dev, libtango9-dev")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "TANGO team <tango@esrf.fr>") #required

include(CPack)
21 changes: 19 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# cppTango [![Build Status](https://travis-ci.org/tango-controls/cppTango.png)](https://travis-ci.org/tango-controls/cppTango)
This repository is the result of svn2git migration of tango source code. It is combined from api/cppapi, api/log4tango, api/cpp_test_suite anf api/cpp_test_ds
[![logo](http://www.tango-controls.org/static/tango/img/logo_tangocontrols.png)](http://www.tango-controls.org)

[![Build Status](https://travis-ci.org/tango-controls/cppTango.png)](https://travis-ci.org/tango-controls/cppTango)

# TANGO distributed control system - shared library

TANGO is an object-oriented distributed control system. In TANGO all objects are representations of devices, which can be on the same computer or distributed over a network. Communication between devices can be synchronous, asynchronous or event driven.

The object model in TANGO supports methods, attributes and properties. TANGO provides an API which hides all the details of network access and provides object browsing, discovery, and security features.

TANGO is being actively developed as a collaborative effort between the ESRF ([www.esrf.eu](http://www.esrf.eu)), Soleil ([synchrotron-soleil.fr](http://synchrotron-soleil.fr)), Alba ([www.cells.es](http://www.cells.es)), and Elettra institutes ([www.elettra.trieste.it](http://www.elettra.trieste.it)).

For more information please visit [www.tango-controls.org](http://www.tango-controls.org).

# Documentation

Generated: [tango-controls.github.io/cppTango-docs](https://tango-controls.github.io/cppTango-docs)

Manuals: [tango-controls.org/resources/documentation/kernel](http://www.tango-controls.org/resources/documentation/kernel/)

# How to build and install using cmake

Expand Down
5 changes: 4 additions & 1 deletion configure/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
include(FindPkgConfig)
include(FindDoxygen)

if(NOT CMAKE_BUILD_TYPE)
message("No build type specified - default is DEBUG")
Expand Down Expand Up @@ -70,4 +71,6 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_definitions(-DGNU_CXX)
endif()

include(GNUInstallDirs)
include(GNUInstallDirs)

include(configure/config.cmake)
17 changes: 13 additions & 4 deletions log4tango/config/config.cmake → configure/config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,28 @@ macro (LOG4TANGO_CHECK_COMPILER_FEATURE source var)
endmacro()

#sstream
LOG4TANGO_CHECK_COMPILER_FEATURE("config/check_sstream.cpp" SSTREAM)
LOG4TANGO_CHECK_COMPILER_FEATURE("configure/check_sstream.cpp" SSTREAM)

#namespace
LOG4TANGO_CHECK_COMPILER_FEATURE("config/check_namespace.cpp" NAMESPACES)
LOG4TANGO_CHECK_COMPILER_FEATURE("configure/check_namespace.cpp" NAMESPACES)

#snprintf
LOG4TANGO_CHECK_COMPILER_FEATURE("config/check_snprintf.cpp" SNPRINTF)
LOG4TANGO_CHECK_COMPILER_FEATURE("configure/check_snprintf.cpp" SNPRINTF)

#check types
check_type_size(int64_t INT64_SIZE)
if(${INT64_SIZE} EQUAL 8)
set(LOG4TANGO_HAVE_INT64_T "/**/")
endif()

#
# +1 : ? : +1 == new interface that does not break old one
# +1 : ? : 0 == new interface that breaks old one
# ? : ? : 0 == no new interfaces, but breaks apps
# ? :+1 : ? == just some internal changes, nothing breaks but might work
# better
# CURRENT : REVISION : AGE
set (LOG4TANGO_PACKAGE_URL "https://github.com/tango-controls/cppTango/log4tango")
set (LOG4TANGO_PACKAGE_BUGREPORT "https://github.com/tango-controls/cppTango/issues")

configure_file(config/config.h.in ${PROJECT_BINARY_DIR}/log4tango/include/log4tango/config.h)
configure_file(configure/config.h.in ${PROJECT_BINARY_DIR}/include/log4tango/config.h)
File renamed without changes.
Loading