All Projects → flightaware → cpptcl

flightaware / cpptcl

Licence: other
C++ library for interoperability between C++ and TCL

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to cpptcl

Grevit
Grevit - Build your BIM Model in Grasshopper or SketchUp
Stars: ✭ 104 (+215.15%)
Mutual labels:  interoperability
Interledger Rs
An easy-to-use, high-performance Interledger implementation written in Rust
Stars: ✭ 155 (+369.7%)
Mutual labels:  interoperability
Swellrt
SwellRT main project. Server, JavaScript and Java clients
Stars: ✭ 205 (+521.21%)
Mutual labels:  interoperability
Ion
General interoperability framework for trustless cross-system interaction
Stars: ✭ 122 (+269.7%)
Mutual labels:  interoperability
Forpy
Forpy - use Python from Fortran
Stars: ✭ 129 (+290.91%)
Mutual labels:  interoperability
Rxkotlinfx
Kotlin extensions to the RxJavaFX framework
Stars: ✭ 177 (+436.36%)
Mutual labels:  interoperability
Trustgraph
Decentralized trust ratings using signed claims
Stars: ✭ 75 (+127.27%)
Mutual labels:  interoperability
seamless
Seamless is a framework to set up reproducible computations (and visualizations) that respond to changes in cells. Cells contain the input data as well as the source code of the computations, and all cells can be edited interactively.
Stars: ✭ 19 (-42.42%)
Mutual labels:  interoperability
Rpy2
Interface to use R from Python
Stars: ✭ 132 (+300%)
Mutual labels:  interoperability
Lale
Library for Semi-Automated Data Science
Stars: ✭ 198 (+500%)
Mutual labels:  interoperability
Interop
Interoperability System for the AUVSI SUAS Competition.
Stars: ✭ 123 (+272.73%)
Mutual labels:  interoperability
Atomicdex Desktop
atomicDEX Desktop app - project codename "Dextop"
Stars: ✭ 126 (+281.82%)
Mutual labels:  interoperability
Blocknet
Official Blocknet cryptocurrency wallet
Stars: ✭ 179 (+442.42%)
Mutual labels:  interoperability
Docs
CDS Hooks website & specification
Stars: ✭ 115 (+248.48%)
Mutual labels:  interoperability
Quilt
Hyperledger Quilt - An implementation of the Interledger Protocol
Stars: ✭ 212 (+542.42%)
Mutual labels:  interoperability
Fsharp.control.fusiontasks
F# Async workflow <--> .NET Task/ValueTask easy seamless interoperability library.
Stars: ✭ 101 (+206.06%)
Mutual labels:  interoperability
Event Loop
An event loop interface for interoperability in PHP.
Stars: ✭ 170 (+415.15%)
Mutual labels:  interoperability
speckle-blender
speckle.systems/tag/blender/
Stars: ✭ 38 (+15.15%)
Mutual labels:  interoperability
Webcompat.com
Source code for webcompat.com
Stars: ✭ 220 (+566.67%)
Mutual labels:  interoperability
Inline Java
Haskell/Java interop via inline Java code in Haskell modules.
Stars: ✭ 197 (+496.97%)
Mutual labels:  interoperability

Linux CI Mac CI

C++/Tcl - a C++ library for interoperability between C++ and Tcl.

Welcome to C++/Tcl!

C++/Tcl... let's call it cpptcl... creates a bridge between C++ and Tcl, providing deep interoperability between the two languages.

C++ developers can use Tcl to create new and powerful ways to interact with, debug, construct automated testing for, and orchestrate the high level activies of their applications.

Tcl developers can use C++ to create high performance code that leverages all of the C++ ecosystem while providing dead simple ways to bring their C++ functions into Tcl, with expected Tcl semantics and no funny business. Writing C++ extensions for Tcl using cpptcl is vastly easier and requires far less code than extending Tcl in C.

Likewise

cpptcl documentation

Copyright (C) 2004-2006, Maciej Sobczak Copyright (C) 2017-2019, FlightAware LLC


You should see the following directories here:

  • doc - contains a short documentation for the library
  • examples - some simple examples to show C++/Tcl basics
  • test - tests used for development - use them for regression testing if you want to modify the library
  • details - some additional code used by the library (not for client use)

In addition, the following files may be of interest to you:

  • README - this file
  • LICENSE - explanation of the license terms
  • CHANGES - the history of changes

The C++/Tcl itself consists of these files:

  • cpptcl/cpptcl.h - to be included in your own files
  • cpptcl/cpptcl_object.h - C++ class that wraps Tcl objects
  • cpptcl.cc - to be compiled and linked with your code

We're using cmake to generate makefiles. This is pretty standard in the C++ world.

In order to compile the tests and the examples you may need to change the compiler options to fit your particular environment (different paths to the Tcl headers and libs, another compiler, etc.). Tests and examples are built by default when building cpptcl (although not when included as a cmake subproject). You can disable the tests and examples by setting -DCPPTCL_TEST=OFF and -DCPPTCL_EXAMPLES=OFF respectively.


cmake

The cpptcl install includes a cpptcl-config.cmake and target files for easy inclusion using cmake. You can therefore use find_package(cpptcl) to add the dependency. It will expose the cpptcl_INCLUDE_DIR variable with the header file location and the following targets to link against:

cpptcl::cpptcl cpptcl::cpptcl_static cpptcl::cpptcl_runtime

Here's a simple example of including cpptcl in your CMakeLists.txt file:

find_package(cpptcl REQUIRED)
find_package(TCL REQUIRED)

add_executable(myexec main.cpp)
target_include_directories(myexec PRIVATE ${cpptcl_INCLUDE_DIR})
target_include_directories(myexec PRIVATE ${TCL_INCLUDE_PATH})
target_link_libraries(myexec cpptcl::cpptcl)
target_link_libraries(myexec ${TCL_LIBRARY})

Anyway - have fun! :-)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].