{"id":21707779,"url":"https://github.com/flightaware/cpptcl","last_synced_at":"2025-04-12T16:17:45.876Z","repository":{"id":46801814,"uuid":"118983416","full_name":"flightaware/cpptcl","owner":"flightaware","description":"C++ library for interoperability between C++ and TCL","archived":false,"fork":false,"pushed_at":"2024-11-07T22:11:21.000Z","size":248,"stargazers_count":54,"open_issues_count":2,"forks_count":12,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-04-12T16:17:24.056Z","etag":null,"topics":["cpp17","interoperability","tcl","tcl-extension"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flightaware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-26T00:17:49.000Z","updated_at":"2024-12-21T15:21:35.000Z","dependencies_parsed_at":"2024-11-06T22:20:40.256Z","dependency_job_id":"b17ba178-4f2c-45a0-bdbc-107c6c5f3aa2","html_url":"https://github.com/flightaware/cpptcl","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fcpptcl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fcpptcl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fcpptcl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fcpptcl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flightaware","download_url":"https://codeload.github.com/flightaware/cpptcl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248594191,"owners_count":21130316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp17","interoperability","tcl","tcl-extension"],"created_at":"2024-11-25T22:19:15.170Z","updated_at":"2025-04-12T16:17:45.845Z","avatar_url":"https://github.com/flightaware.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Linux CI](https://github.com/flightaware/cpptcl/workflows/Linux%20CI/badge.svg)\n![Mac CI](https://github.com/flightaware/cpptcl/workflows/Mac%20CI/badge.svg)\n\nC++/Tcl - a C++ library for interoperability between C++ and Tcl.\n========\n\nWelcome to C++/Tcl!\n\nC++/Tcl... let's call it cpptcl... creates a bridge between C++ and Tcl, providing deep interoperability between the two languages.\n\nC++ 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.\n\nTcl 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.\n\nLikewise \n\n[cpptcl documentation](https://github.com/flightaware/cpptcl/tree/master/doc)\n\nCopyright (C) 2004-2006, Maciej Sobczak\nCopyright (C) 2017-2019, FlightAware LLC\n\n---\n\nYou should see the following directories here:\n\n- doc      - contains a short documentation for the library\n- examples - some simple examples to show C++/Tcl basics\n- test     - tests used for development - use them for regression testing\n             if you want to modify the library\n- details  - some additional code used by the library (not for client use)\n\nIn addition, the following files may be of interest to you:\n\n- README   - this file\n- LICENSE  - explanation of the license terms\n- CHANGES  - the history of changes\n\n\nThe C++/Tcl itself consists of these files:\n- cpptcl/cpptcl.h - to be included in your own files\n- cpptcl/cpptcl_object.h - C++ class that wraps Tcl objects\n- cpptcl.cc - to be compiled and linked with your code\n\nWe're using cmake to generate makefiles.  This is pretty standard in the C++ world.\n\nIn 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.\n\n---\n\ncmake\n\nThe 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:\n\ncpptcl::cpptcl\ncpptcl::cpptcl_static\ncpptcl::cpptcl_runtime\n\nHere's a simple example of including cpptcl in your CMakeLists.txt file:\n\n```\nfind_package(cpptcl REQUIRED)\nfind_package(TCL REQUIRED)\n\nadd_executable(myexec main.cpp)\ntarget_include_directories(myexec PRIVATE ${cpptcl_INCLUDE_DIR})\ntarget_include_directories(myexec PRIVATE ${TCL_INCLUDE_PATH})\ntarget_link_libraries(myexec cpptcl::cpptcl)\ntarget_link_libraries(myexec ${TCL_LIBRARY})\n```\n\nAnyway - have fun! :-)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Fcpptcl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflightaware%2Fcpptcl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Fcpptcl/lists"}