{"id":26633530,"url":"https://github.com/vincent-picaud/meson_starter_script","last_synced_at":"2025-08-20T01:06:00.933Z","repository":{"id":165658980,"uuid":"170974019","full_name":"vincent-picaud/meson_starter_script","owner":"vincent-picaud","description":"A simple script to create a messon project skeleton","archived":false,"fork":false,"pushed_at":"2020-11-04T16:06:06.000Z","size":76,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T22:33:02.899Z","etag":null,"topics":["bash-script","cpp","doxygen","gtest","mesonbuild","project-template"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vincent-picaud.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2019-02-16T07:07:59.000Z","updated_at":"2022-01-21T09:09:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"deb7e4e6-3017-4183-8261-fb84ee4be201","html_url":"https://github.com/vincent-picaud/meson_starter_script","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vincent-picaud/meson_starter_script","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincent-picaud%2Fmeson_starter_script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincent-picaud%2Fmeson_starter_script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincent-picaud%2Fmeson_starter_script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincent-picaud%2Fmeson_starter_script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vincent-picaud","download_url":"https://codeload.github.com/vincent-picaud/meson_starter_script/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincent-picaud%2Fmeson_starter_script/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271247625,"owners_count":24725950,"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","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash-script","cpp","doxygen","gtest","mesonbuild","project-template"],"created_at":"2025-03-24T15:15:25.954Z","updated_at":"2025-08-20T01:06:00.898Z","avatar_url":"https://github.com/vincent-picaud.png","language":"Shell","readme":"#+BLOG: wordpress\n#+POSTID: 862\n#+DATE: [2019-07-27 Sat 15:13]\n#+TITLE: A Meson starter script for C++ projects\n#+CATEGORY: Meson\n#+PROPERTY: header-args:sh :eval no-export :results output :wrap EXAMPLE :exports both :session *meson_sh*\n\n* What is it?\n\nA simple script to create a [[https://mesonbuild.com][Meson]] C++ project skeleton with [[http://www.doxygen.nl/][Doxygen]] and\n[[https://github.com/google/googletest][gtest]] configured. The whole script can be found [[https://github.com/vincent-picaud/meson_starter_script][in this GitHub repo]].\n\n*Usage:*\n\n# Note: as github does not print command output unless we repeate the\n# \":exports both\" statement\n\n#+BEGIN_SRC sh :exports both \n./create_project \n#+END_SRC \n\n#+RESULTS:\n#+BEGIN_EXAMPLE\nUsage: create_project PROJECT_ROOT_DIRECTORY [-f]\n\n   Creates a directory 'PROJECT_ROOT_DIRECTORY' and populates it with some configuration files.\n   By default *never* overwrite files, use the -f extra flag to force overwriting\n#+END_EXAMPLE\n\n* Detailed example\n\n** Project creation\n\nTo create a skeleton project in =/tmp/MyProject=, run\n\n#+BEGIN_SRC sh :exports both  \n./create_project /tmp/MyProject \n#+END_SRC \n\n#+RESULTS:\n#+BEGIN_EXAMPLE\nCreate directory /tmp/MyProject\nCreate file      /tmp/MyProject/meson.build\nCreate directory /tmp/MyProject/src\nCreate file      /tmp/MyProject/src/meson.build\nCreate directory /tmp/MyProject/src/MyProject\nCreate file      /tmp/MyProject/src/MyProject/meson.build\nCreate file      /tmp/MyProject/src/MyProject/hello.hpp\nCreate file      /tmp/MyProject/src/MyProject/hello.cpp\nCreate directory /tmp/MyProject/subprojects\nCreate file      /tmp/MyProject/subprojects/gtest.wrap\nCreate directory /tmp/MyProject/test\nCreate file      /tmp/MyProject/test/meson.build\nCreate file      /tmp/MyProject/test/hello.cpp\nCreate directory /tmp/MyProject/bin\nCreate file      /tmp/MyProject/bin/meson.build\nCreate file      /tmp/MyProject/bin/hello.cpp\nCreate directory /tmp/MyProject/sandbox\nCreate file      /tmp/MyProject/sandbox/meson.build\nCreate file      /tmp/MyProject/sandbox/hello.cpp\nCreate directory /tmp/MyProject/examples\nCreate file      /tmp/MyProject/examples/meson.build\nCreate file      /tmp/MyProject/examples/hello.cpp\nCreate directory /tmp/MyProject/doc\nCreate directory /tmp/MyProject/doc/figures\nCreate file      /tmp/MyProject/doc/meson.build\nCreate file      /tmp/MyProject/doc/Doxyfile.in\nCreate file      /tmp/MyProject/doc/bibliography.bib\n#+END_EXAMPLE\n\nYou get a basic Meson project with the following directory hierarchy:\n#+BEGIN_SRC sh :results output drawer :exports results :eval no-export :wrap EXAMPLE :eval never\n/home/picaud/GitLab/WorkingWithOrgMode/Scripts/orgTree.sh /tmp/MyProject/ --noLink -P \"*.*\" \n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n+ meson.build                    \u003c- root meson file\n\n+ src/\n\t+ MyProject/             \u003c- your \"MyProject\" library (installed, scanned by Doxygen)\n\t\t+ hello.cpp\n\t\t+ hello.hpp\n\t\t+ meson.build\n\t+ meson.build\n\n+ bin/                           \u003c- binaries (installed, scanned by Doxygen)\n\t+ meson.build\n\t+ hello.cpp\n\n+ sandbox/                       \u003c- \"sandbox\" binaries (not installed, not scanned by Doxygen)\n\t+ meson.build\n\t+ hello.cpp\n\n+ examples/                      \u003c- \"examples\" binaries (not installed, Doxygen examples dir)\n\t+ meson.build\n\t+ hello.cpp\n\n+ test/                          \u003c- unit tests (not installed)\n\t+ meson.build\n\t+ hello.cpp\n\n+ doc/\n\t+ meson.build\n\t+ bibliography.bib       \u003c- doxygen + bibliography file (installed)  \n\t+ Doxyfile.in\n\n+ subprojects/                   \u003c- subprojects, here gtest (not installed)\n\t+ gtest.wrap\n#+END_EXAMPLE\n\n** Build dir creation\n\nTo create your project build directory with =/tmp/InstallDirectory= as\ninstallation directory run:\n\n#+BEGIN_SRC sh :exports both :wrap EXAMPLE\ncd /tmp/MyProject\nmeson build --prefix=/tmp/InstallDirectory\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n\nThe Meson build system\nVersion: 0.49.2\nSource dir: /tmp/MyProject\nBuild dir: /tmp/MyProject/build\nBuild type: native build\nProject name: MyProject\nProject version: 0.0.1\nNative C++ compiler: ccache c++ (gcc 8.3.0 \"c++ (Debian 8.3.0-6) 8.3.0\")\nBuild machine cpu family: x86_64\nBuild machine cpu: x86_64\nDownloading gtest source from https://github.com/google/googletest/archive/release-1.8.0.zip\nDownloading file of unknown size.\nDownloading gtest patch from https://wrapdb.mesonbuild.com/v1/projects/gtest/1.8.0/5/get_zip\nDownload size: 2084\nDownloading: ..........\n\n|\n|Executing subproject gtest \n|\n|Project name: gtest\n|Project version: 1.8.0\n|Native C++ compiler: ccache c++ (gcc 8.3.0 \"c++ (Debian 8.3.0-6) 8.3.0\")\n|Dependency threads found: YES \n|Dependency threads found: YES (cached)\n|Dependency threads found: YES (cached)\n|Dependency threads found: YES (cached)\n|Build targets in project: 0\n|\n|Subproject gtest finished.\nProgram doxygen found: YES (/usr/bin/doxygen)\nProgram dot found: YES (/usr/bin/dot)\nConfiguring Doxyfile using configuration\nBuild targets in project: 6\nFound ninja-1.8.2 at /usr/bin/ninja\n#+END_EXAMPLE\n\n\n** Project compilation \n\nTo compile your project (with its doxygen documentation) type:\n\n#+BEGIN_SRC sh :exports both :wrap EXAMPLE\ncd build\nninja \n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n\n[1/14] Compiling C++ object 'src/MyProject/63d4f26@@MyProject@sha/hello.cpp.o'.\n[2/14] Compiling C++ object 'sandbox/b7ad567@@hello@exe/hello.cpp.o'.\n[3/14] Compiling C++ object 'test/9f86d08@@hello_exe@exe/.._subprojects_googletest-release-1.8.0_googletest_src_gtest_main.cc.o'.\n[4/14] Compiling C++ object 'test/9f86d08@@hello_exe@exe/hello.cpp.o'.\n[5/14] Compiling C++ object 'bin/51a1f05@@hello@exe/hello.cpp.o'.\n[6/14] Compiling C++ object 'test/9f86d08@@hello_exe@exe/.._subprojects_googletest-release-1.8.0_googletest_src_gtest-all.cc.o'.\n[7/14] Compiling C++ object 'examples/c590b3c@@hello@exe/hello.cpp.o'.\n[8/14] Linking target src/MyProject/libMyProject.so.\n[9/14] Generating doc with a custom command.\nwarning: ignoring unknown tag `y' at line 2277, file doc/Doxyfile\nSearching for include files...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nSearching for example files...\nSearching for files in directory /tmp/MyProject/examples\nSearching for images...\nSearching for files in directory /tmp/MyProject/doc/figures\nSearching for dot files...\nSearching for msc files...\nSearching for dia files...\nSearching for files to exclude\nSearching INPUT for files to process...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nReading and parsing tag files\nParsing files\nPreprocessing /tmp/MyProject/src/MyProject/hello.cpp...\nParsing file /tmp/MyProject/src/MyProject/hello.cpp...\nPreprocessing /tmp/MyProject/src/MyProject/hello.hpp...\nParsing file /tmp/MyProject/src/MyProject/hello.hpp...\nPreprocessing /tmp/MyProject/bin/hello.cpp...\nParsing file /tmp/MyProject/bin/hello.cpp...\nBuilding group list...\nBuilding directory list...\nBuilding namespace list...\nBuilding file list...\nBuilding class list...\nAssociating documentation with classes...\nComputing nesting relations for classes...\nBuilding example list...\nSearching for enumerations...\nSearching for documented typedefs...\nSearching for members imported via using declarations...\nSearching for included using directives...\nSearching for documented variables...\nBuilding interface member list...\nBuilding member list...\nSearching for friends...\nSearching for documented defines...\nComputing class inheritance relations...\nComputing class usage relations...\nFlushing cached template relations that have become invalid...\nComputing class relations...\nAdd enum values to enums...\nSearching for member function documentation...\nCreating members for template instances...\nBuilding page list...\nSearch for main page...\nComputing page relations...\nDetermining the scope of groups...\nSorting lists...\nFreeing entry tree\nDetermining which enums are documented\nComputing member relations...\nBuilding full member lists recursively...\nAdding members to member groups.\nComputing member references...\nInheriting documentation...\nGenerating disk names...\nAdding source references...\nAdding xrefitems...\nSorting member lists...\nGenerating citations page...\nCounting data structures...\nResolving user defined references...\nFinding anchors and sections in the documentation...\nTransferring function references...\nCombining using relations...\nAdding members to index pages...\nGenerating style sheet...\nGenerating search indices...\nGenerating example documentation...\nGenerating file sources...\nGenerating code for file hello.hpp...\nGenerating file documentation...\nGenerating docs for file hello.cpp...\nGenerating docs for file hello.hpp...\nGenerating page documentation...\nGenerating docs for page citelist...\nGenerating group documentation...\nGenerating class documentation...\nGenerating namespace index...\nGenerating graph info page...\nGenerating directory documentation...\nGenerating index page...\nGenerating page index...\nGenerating module index...\nGenerating namespace index...\nGenerating namespace member index...\nGenerating annotated compound index...\nGenerating alphabetical compound index...\nGenerating hierarchical class index...\nGenerating member index...\nGenerating file index...\nGenerating file member index...\nGenerating example index...\nfinalizing index lists...\nwriting tag file...\nRunning dot...\nRunning dot for graph 1/1\nlookup cache used 5/65536 hits=10 misses=5\nfinished...\n[10/14] Generating symbol file 'src/MyProject/63d4f26@@MyProject@sha/libMyProject.so.symbols'.\n[11/14] Linking target bin/hello.\n[12/14] Linking target sandbox/hello.\n[13/14] Linking target examples/hello.\n[14/14] Linking target test/hello_exe.\n#+END_EXAMPLE\n\n*Note:*\nYou can visualize the generated documentation with:\n#+BEGIN_SRC sh :exports code\nchromium doc/html/index.html \n#+END_SRC \n\n#+RESULTS:\n#+BEGIN_EXAMPLE\nOpening in existing browser session.\n[13035:13058:0901/071855.479256:ERROR:browser_process_sub_thread.cc(203)] Waited 224 ms for network service\n#+END_EXAMPLE\n\n** Running unit tests\n\nTo run unit tests, run:\n#+BEGIN_SRC sh :exports both :wrap EXAMPLE\nninja test\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n[1/2] Generating doc with a custom command.\nwarning: ignoring unknown tag `y' at line 2277, file doc/Doxyfile\nSearching for include files...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nSearching for example files...\nSearching for files in directory /tmp/MyProject/examples\nSearching for images...\nSearching for files in directory /tmp/MyProject/doc/figures\nSearching for dot files...\nSearching for msc files...\nSearching for dia files...\nSearching for files to exclude\nSearching INPUT for files to process...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nReading and parsing tag files\nParsing files\nPreprocessing /tmp/MyProject/src/MyProject/hello.cpp...\nParsing file /tmp/MyProject/src/MyProject/hello.cpp...\nPreprocessing /tmp/MyProject/src/MyProject/hello.hpp...\nParsing file /tmp/MyProject/src/MyProject/hello.hpp...\nPreprocessing /tmp/MyProject/bin/hello.cpp...\nParsing file /tmp/MyProject/bin/hello.cpp...\nBuilding group list...\nBuilding directory list...\nBuilding namespace list...\nBuilding file list...\nBuilding class list...\nAssociating documentation with classes...\nComputing nesting relations for classes...\nBuilding example list...\nSearching for enumerations...\nSearching for documented typedefs...\nSearching for members imported via using declarations...\nSearching for included using directives...\nSearching for documented variables...\nBuilding interface member list...\nBuilding member list...\nSearching for friends...\nSearching for documented defines...\nComputing class inheritance relations...\nComputing class usage relations...\nFlushing cached template relations that have become invalid...\nComputing class relations...\nAdd enum values to enums...\nSearching for member function documentation...\nCreating members for template instances...\nBuilding page list...\nSearch for main page...\nComputing page relations...\nDetermining the scope of groups...\nSorting lists...\nFreeing entry tree\nDetermining which enums are documented\nComputing member relations...\nBuilding full member lists recursively...\nAdding members to member groups.\nComputing member references...\nInheriting documentation...\nGenerating disk names...\nAdding source references...\nAdding xrefitems...\nSorting member lists...\nGenerating citations page...\nCounting data structures...\nResolving user defined references...\nFinding anchors and sections in the documentation...\nTransferring function references...\nCombining using relations...\nAdding members to index pages...\nGenerating style sheet...\nGenerating search indices...\nGenerating example documentation...\nGenerating file sources...\nGenerating code for file hello.hpp...\nGenerating file documentation...\nGenerating docs for file hello.cpp...\nGenerating docs for file hello.hpp...\nGenerating page documentation...\nGenerating docs for page citelist...\nGenerating group documentation...\nGenerating class documentation...\nGenerating namespace index...\nGenerating graph info page...\nGenerating directory documentation...\nGenerating index page...\nGenerating page index...\nGenerating module index...\nGenerating namespace index...\nGenerating namespace member index...\nGenerating annotated compound index...\nGenerating alphabetical compound index...\nGenerating hierarchical class index...\nGenerating member index...\nGenerating file index...\nGenerating file member index...\nGenerating example index...\nfinalizing index lists...\nwriting tag file...\nRunning dot...\nlookup cache used 5/65536 hits=10 misses=5\nfinished...\n[1/2] Running all tests.\n1/1 hello_test                              OK       0.01 s \n\nOk:                    1\nExpected Fail:         0\nFail:                  0\nUnexpected Pass:       0\nSkipped:               0\nTimeout:               0\n\nFull log written to /tmp/MyProject/build/meson-logs/testlog.txt\n#+END_EXAMPLE\n\n** Project installation\n\nFinally, if you want to install your project, run:\n#+BEGIN_SRC sh :exports both :wrap EXAMPLE \nninja install \n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n[1/2] Generating doc with a custom command.\nwarning: ignoring unknown tag `y' at line 2277, file doc/Doxyfile\nSearching for include files...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nSearching for example files...\nSearching for files in directory /tmp/MyProject/examples\nSearching for images...\nSearching for files in directory /tmp/MyProject/doc/figures\nSearching for dot files...\nSearching for msc files...\nSearching for dia files...\nSearching for files to exclude\nSearching INPUT for files to process...\nSearching for files in directory /tmp/MyProject/src/MyProject\nSearching for files in directory /tmp/MyProject/bin\nReading and parsing tag files\nParsing files\nPreprocessing /tmp/MyProject/src/MyProject/hello.cpp...\nParsing file /tmp/MyProject/src/MyProject/hello.cpp...\nPreprocessing /tmp/MyProject/src/MyProject/hello.hpp...\nParsing file /tmp/MyProject/src/MyProject/hello.hpp...\nPreprocessing /tmp/MyProject/bin/hello.cpp...\nParsing file /tmp/MyProject/bin/hello.cpp...\nBuilding group list...\nBuilding directory list...\nBuilding namespace list...\nBuilding file list...\nBuilding class list...\nAssociating documentation with classes...\nComputing nesting relations for classes...\nBuilding example list...\nSearching for enumerations...\nSearching for documented typedefs...\nSearching for members imported via using declarations...\nSearching for included using directives...\nSearching for documented variables...\nBuilding interface member list...\nBuilding member list...\nSearching for friends...\nSearching for documented defines...\nComputing class inheritance relations...\nComputing class usage relations...\nFlushing cached template relations that have become invalid...\nComputing class relations...\nAdd enum values to enums...\nSearching for member function documentation...\nCreating members for template instances...\nBuilding page list...\nSearch for main page...\nComputing page relations...\nDetermining the scope of groups...\nSorting lists...\nFreeing entry tree\nDetermining which enums are documented\nComputing member relations...\nBuilding full member lists recursively...\nAdding members to member groups.\nComputing member references...\nInheriting documentation...\nGenerating disk names...\nAdding source references...\nAdding xrefitems...\nSorting member lists...\nGenerating citations page...\nCounting data structures...\nResolving user defined references...\nFinding anchors and sections in the documentation...\nTransferring function references...\nCombining using relations...\nAdding members to index pages...\nGenerating style sheet...\nGenerating search indices...\nGenerating example documentation...\nGenerating file sources...\nGenerating code for file hello.hpp...\nGenerating file documentation...\nGenerating docs for file hello.cpp...\nGenerating docs for file hello.hpp...\nGenerating page documentation...\nGenerating docs for page citelist...\nGenerating group documentation...\nGenerating class documentation...\nGenerating namespace index...\nGenerating graph info page...\nGenerating directory documentation...\nGenerating index page...\nGenerating page index...\nGenerating module index...\nGenerating namespace index...\nGenerating namespace member index...\nGenerating annotated compound index...\nGenerating alphabetical compound index...\nGenerating hierarchical class index...\nGenerating member index...\nGenerating file index...\nGenerating file member index...\nGenerating example index...\nfinalizing index lists...\nwriting tag file...\nRunning dot...\nlookup cache used 5/65536 hits=10 misses=5\nfinished...\n[1/2] Installing files.\nInstalling src/MyProject/libMyProject.so to /tmp/InstallDirectory/lib/x86_64-linux-gnu\nInstalling bin/hello to /tmp/InstallDirectory/bin\nInstalling /tmp/MyProject/build/doc/html/a00005.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/tab_h.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/sync_on.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/graph_legend.md5 to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/pages.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/jquery.js to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/menu.js to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/folderclosed.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/dir_12739b51ecd9f955b0759ea118dd308c.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/nav_f.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/tab_s.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/splitbar.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/graph_legend.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/closed.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/bdwn.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/a00015.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/tabs.css to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/doxygen.css to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/index.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/tab_a.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/open.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/menudata.js to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/graph_legend.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/nav_h.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/a00012.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/bc_s.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/doxygen.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/nav_g.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/dynsections.js to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/dir_2ea30aa2956a8db99dd22aa5e597f384.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/files.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/sync_off.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/folderopen.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/a00005_source.html to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/tab_b.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/doc.png to /tmp/InstallDirectory/share/doc/html\nInstalling /tmp/MyProject/build/doc/html/search/files_1.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/all_1.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/search_r.png to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/all_0.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/close.png to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/search.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/search_l.png to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/files_0.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/searchdata.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/nomatches.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/pages_0.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/all_0.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/files_1.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/mag_sel.png to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/search.css to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/pages_0.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/all_1.html to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/search_m.png to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/build/doc/html/search/files_0.js to /tmp/InstallDirectory/share/doc/html/search\nInstalling /tmp/MyProject/src/MyProject/hello.hpp to /tmp/InstallDirectory/include/MyProject\n#+END_EXAMPLE\n\n\n\n* Further information\n** Project file listings \n*** The =MyProject= library\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/src/MyProject/hello.hpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n/// @file\n/// @brief Hello lib file\ninclude \u003cstring\u003e\n\nnamespace MyProject {\n\n  /// @brief A function \n  ///\n  /// A bibtex reference example @cite pakkanen_meson_build_system\n  ///\n  /// Usage example @include hello.cpp\n  std::string hello();\n    \n}\n#+END_EXAMPLE\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/src/MyProject/hello.cpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n\ninclude \"hello.hpp\"\n\nnamespace MyProject {\n\n  std::string hello() {\n    return \"Hello MyProject\";\n  };\n    \n}\n#+END_EXAMPLE\n\n*** The project unit tests\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/test/hello.cpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n\ninclude \"MyProject/hello.hpp\"\ninclude \u003cgtest/gtest.h\u003e\n\nusing namespace MyProject;\n\nTEST(Hello, demo)\n{\n  ASSERT_EQ(hello(),\"Hello MyProject\");\n}\n#+END_EXAMPLE\n\n*** The =bin/hello.cpp= file\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/bin/hello.cpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n/// @file\n/// @brief Hello executable file\ninclude \"MyProject/hello.hpp\"\ninclude \u003ciostream\u003e\n\nusing namespace MyProject;\n\nint main()\n{\n  std::cout \u003c\u003c hello()  \u003c\u003c \" from bin/ \" \u003c\u003c std::endl;\n}\n#+END_EXAMPLE\n\n*** The =sandbox/hello.cpp= file\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/sandbox/hello.cpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n/// @file\n/// @brief Hello example file\ninclude \"MyProject/hello.hpp\"\ninclude \u003ciostream\u003e\n\nusing namespace MyProject;\n\nint main()\n{\n  std::cout \u003c\u003c hello() \u003c\u003c \" from sandbox/ \" \u003c\u003c std::endl;\n}\n#+END_EXAMPLE\n\n*** The =examples/hello.cpp= file\n\n#+BEGIN_SRC sh :exports both \ncat /tmp/MyProject/examples/hello.cpp\n#+END_SRC\n\n#+RESULTS:\n#+BEGIN_EXAMPLE\n/// @file\n/// @brief Hello example file\ninclude \"MyProject/hello.hpp\"\ninclude \u003ciostream\u003e\n\nusing namespace MyProject;\n\nint main()\n{\n  std::cout \u003c\u003c hello() \u003c\u003c \" from examples/ \" \u003c\u003c std::endl;\n}\n#+END_EXAMPLE\n\n** More about Meson\nSome Meson official site links:\n- [[https://mesonbuild.com/howtox.html][How do I do X in Meson?]]\n- [[http://mesonbuild.com/Reference-manual.html][Meson's reference manual]]\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincent-picaud%2Fmeson_starter_script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvincent-picaud%2Fmeson_starter_script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincent-picaud%2Fmeson_starter_script/lists"}