calref / cboe

Classic Blades of Exile
http://spiderwebforums.ipbhost.com/index.php?/forum/12-blades-of-exile/
Other
167 stars 41 forks source link

Most builds fixed #354

Closed NQNStudios closed 1 month ago

NQNStudios commented 1 month ago

I still can't get win-scons to work, but everything else is (usually), plus vcpkg dependencies cache now, which saves like 10 minutes per re-run.

clort81 commented 1 month ago

Tested build of git master on devuan daedalus (debian without systemd).

SCons: v4.4.0.fc8d0ec215ee6cba8bc158ad40c099be0b598297, Sat, 30 Jul 2022 14:11:34 -0700, by bdbaddog on M1Dog2021

$ scons
scons: Reading SConscript files ...
Building for: posix
Using toolchain: default
C++ compiler: g++
Checking whether the C compiler works... (cached) yes
Checking whether the C++ compiler works... (cached) yes
Checking for C library z... (cached) yes
Checking for C++ header file boost/lexical_cast.hpp... (cached) yes
Checking for C++ header file boost/optional.hpp... (cached) yes
Checking for C++ header file boost/ptr_container/ptr_container.hpp... (cached) yes
Checking for C++ header file boost/any.hpp... (cached) yes
Checking for C++ header file boost/math_fwd.hpp... (cached) yes
Checking for C++ header file boost/spirit/include/classic.hpp... (cached) yes
Checking for C++ library boost_system... (cached) yes
Checking for C++ library boost_filesystem... (cached) yes
Checking for C++ library sfml-system... (cached) yes
Checking for C++ library sfml-window... (cached) yes
Checking for C++ library sfml-audio... (cached) yes
Checking for C++ library sfml-graphics... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/obj/game/boe.menus.linux.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe/TGUI -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/game/deps/Catch2/single_include build/obj/game/boe.menus.linux.cpp
In file included from build/obj/game/boe.menus.linux.cpp:9:
build/obj/game/boe.menu.hpp:7:10: fatal error: TGUI/TGUI.hpp: No such file or directory
    7 | #include <TGUI/TGUI.hpp>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
scons: *** [build/obj/game/boe.menus.linux.o] Error 1
scons: building terminated because of errors.

Searched recent issues, saw the INCLUDEPATH hack:

$ scons INCLUDEPATH=/pr/Games/cboe/
scons: Reading SConscript files ...
Building for: posix
Using toolchain: default
C++ compiler: g++
Checking whether the C compiler works... (cached) yes
Checking whether the C++ compiler works... (cached) yes
Checking for C library z... (cached) yes
Checking for C++ header file boost/lexical_cast.hpp... (cached) yes
Checking for C++ header file boost/optional.hpp... (cached) yes
Checking for C++ header file boost/ptr_container/ptr_container.hpp... (cached) yes
Checking for C++ header file boost/any.hpp... (cached) yes
Checking for C++ header file boost/math_fwd.hpp... (cached) yes
Checking for C++ header file boost/spirit/include/classic.hpp... (cached) yes
Checking for C++ library boost_system... (cached) yes
Checking for C++ library boost_filesystem... (cached) yes
Checking for C++ library sfml-system... (cached) yes
Checking for C++ library sfml-window... (cached) yes
Checking for C++ library sfml-audio... (cached) yes
Checking for C++ library sfml-graphics... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/obj/game/boe.menus.linux.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/game/deps/Catch2/single_include build/obj/game/boe.menus.linux.cpp
g++ -o build/obj/game/boe.menu.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/game/deps/Catch2/single_include build/obj/game/boe.menu.cpp
build/obj/game/boe.menu.cpp: In constructor ‘OpenBoEMenu::OpenBoEMenu(sf::RenderWindow&, cUniverse&)’:
build/obj/game/boe.menu.cpp:16:53: error: cannot convert ‘const tgui::String’ to ‘const sf::String&’
   16 |         this->tgui.add(this->build_menubar(), this->internal_menubar_widget_name);
      |                                               ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     const tgui::String
In file included from /pr/Games/cboe/TGUI/TGUI.hpp:35,
                 from build/obj/game/boe.menu.hpp:7,
                 from build/obj/game/boe.menu.cpp:3:
/pr/Games/cboe/TGUI/Gui.hpp:239:66: note:   initializing argument 2 of ‘void tgui::Gui::add(const tgui::Widget::Ptr&, const sf::String&)’
  239 |         void add(const Widget::Ptr& widgetPtr, const sf::String& widgetName = "");
      |                                                ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
build/obj/game/boe.menu.cpp: In member function ‘void OpenBoEMenu::add_persistent_menu_items(tgui::MenuBar::Ptr&) const’:
build/obj/game/boe.menu.cpp:92:37: error: no matching function for call to ‘tgui::MenuBar::addMenuItem(const std::vector<tgui::String>&)’
   92 |                 menubar->addMenuItem(item.first);
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from /pr/Games/cboe/TGUI/TGUI.hpp:59:
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&)’
  217 |         bool addMenuItem(const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:44: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const sf::String&’
  217 |         bool addMenuItem(const sf::String& text);
      |                          ~~~~~~~~~~~~~~~~~~^~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&, const sf::String&)’
  236 |         bool addMenuItem(const sf::String& menu, const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note:   candidate expects 2 arguments, 1 provided
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const std::vector<sf::String>&, bool)’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:57: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const std::vector<sf::String>&’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
build/obj/game/boe.menu.cpp:93:41: error: no matching function for call to ‘tgui::MenuBar::connectMenuItem(const std::vector<tgui::String>&, void (&)(eMenu), const eMenu&)’
   93 |                 menubar->connectMenuItem(item.first, handle_menu_choice, item.second);
build/obj/game/boe.menu.cpp: In member function ‘tgui::MenuBar::Ptr OpenBoEMenu::get_menubar_ptr() const’:
build/obj/game/boe.menu.cpp:200:52: error: cannot convert ‘const tgui::String’ to ‘const sf::String&’
  200 |         return this->tgui.get<tgui::MenuBar>(this->internal_menubar_widget_name);
      |                                              ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    const tgui::String
/pr/Games/cboe/TGUI/Gui.hpp:273:47: note:   initializing argument 1 of ‘typename T::Ptr tgui::Gui::get(const sf::String&) const [with T = tgui::MenuBar; typename T::Ptr = std::shared_ptr<tgui::MenuBar>]’
  273 |         typename T::Ptr get(const sf::String& widgetName) const
      |                             ~~~~~~~~~~~~~~~~~~^~~~~~~~~~
build/obj/game/boe.menu.cpp: In member function ‘void OpenBoEMenu::update_mage_spells_menu(tgui::MenuBar::Ptr&)’:
build/obj/game/boe.menu.cpp:252:29: error: no matching function for call to ‘tgui::MenuBar::addMenuItem(const OpenBoEMenu::MenuHierarchy&)’
  252 |         menubar->addMenuItem(about_hierarchy);
      |         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&)’
  217 |         bool addMenuItem(const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:44: note:   no known conversion for argument 1 from ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’} to ‘const sf::String&’
  217 |         bool addMenuItem(const sf::String& text);
      |                          ~~~~~~~~~~~~~~~~~~^~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&, const sf::String&)’
  236 |         bool addMenuItem(const sf::String& menu, const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note:   candidate expects 2 arguments, 1 provided
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const std::vector<sf::String>&, bool)’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:57: note:   no known conversion for argument 1 from ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’} to ‘const std::vector<sf::String>&’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
build/obj/game/boe.menu.cpp:254:41: error: no matching function for call to ‘tgui::MenuBar::connectMenuItem(const OpenBoEMenu::MenuHierarchy&, void (&)(eMenu), eMenu)’
  254 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_MAGE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const sf::String&, const sf::String&, Func&&, const Args& ...)’
  131 |         unsigned int connectMenuItem(const sf::String& menu, const sf::String& menuItem, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:254:42: note:   cannot convert ‘about_hierarchy’ (type ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’}) to type ‘const sf::String&’
  254 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_MAGE)
      |                                          ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const std::vector<sf::String>&, Func&&, const Args& ...)’
  149 |         unsigned int connectMenuItem(const std::vector<sf::String>& hierarchy, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:254:42: note:   cannot convert ‘about_hierarchy’ (type ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’}) to type ‘const std::vector<sf::String>&’
  254 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_MAGE)
      |                                          ^~~~~~~~~~~~~~~
build/obj/game/boe.menu.cpp:262:45: error: no matching function for call to ‘tgui::MenuBar::addMenuItem(const std::vector<tgui::String>&)’
  262 |                         menubar->addMenuItem(spell_hierarchy);
      |                         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&)’
  217 |         bool addMenuItem(const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:44: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const sf::String&’
  217 |         bool addMenuItem(const sf::String& text);
      |                          ~~~~~~~~~~~~~~~~~~^~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&, const sf::String&)’
  236 |         bool addMenuItem(const sf::String& menu, const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note:   candidate expects 2 arguments, 1 provided
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const std::vector<sf::String>&, bool)’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:57: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const std::vector<sf::String>&’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
build/obj/game/boe.menu.cpp:265:57: error: no matching function for call to ‘tgui::MenuBar::connectMenuItem(const std::vector<tgui::String>&, void (&)(eSpell), eSpell&)’
  265 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const sf::String&, const sf::String&, Func&&, const Args& ...)’
  131 |         unsigned int connectMenuItem(const sf::String& menu, const sf::String& menuItem, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:265:58: note:   cannot convert ‘spell_hierarchy’ (type ‘const std::vector<tgui::String>’) to type ‘const sf::String&’
  265 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                                          ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const std::vector<sf::String>&, Func&&, const Args& ...)’
  149 |         unsigned int connectMenuItem(const std::vector<sf::String>& hierarchy, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:265:58: note:   cannot convert ‘spell_hierarchy’ (type ‘const std::vector<tgui::String>’) to type ‘const std::vector<sf::String>&’
  265 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                                          ^~~~~~~~~~~~~~~
build/obj/game/boe.menu.cpp: In member function ‘void OpenBoEMenu::update_priest_spells_menu(tgui::MenuBar::Ptr&)’:
build/obj/game/boe.menu.cpp:275:29: error: no matching function for call to ‘tgui::MenuBar::addMenuItem(const OpenBoEMenu::MenuHierarchy&)’
  275 |         menubar->addMenuItem(about_hierarchy);
      |         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&)’
  217 |         bool addMenuItem(const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:44: note:   no known conversion for argument 1 from ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’} to ‘const sf::String&’
  217 |         bool addMenuItem(const sf::String& text);
      |                          ~~~~~~~~~~~~~~~~~~^~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&, const sf::String&)’
  236 |         bool addMenuItem(const sf::String& menu, const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note:   candidate expects 2 arguments, 1 provided
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const std::vector<sf::String>&, bool)’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:57: note:   no known conversion for argument 1 from ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’} to ‘const std::vector<sf::String>&’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
build/obj/game/boe.menu.cpp:277:41: error: no matching function for call to ‘tgui::MenuBar::connectMenuItem(const OpenBoEMenu::MenuHierarchy&, void (&)(eMenu), eMenu)’
  277 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_PRIEST)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const sf::String&, const sf::String&, Func&&, const Args& ...)’
  131 |         unsigned int connectMenuItem(const sf::String& menu, const sf::String& menuItem, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:277:42: note:   cannot convert ‘about_hierarchy’ (type ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’}) to type ‘const sf::String&’
  277 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_PRIEST)
      |                                          ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const std::vector<sf::String>&, Func&&, const Args& ...)’
  149 |         unsigned int connectMenuItem(const std::vector<sf::String>& hierarchy, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:277:42: note:   cannot convert ‘about_hierarchy’ (type ‘const OpenBoEMenu::MenuHierarchy’ {aka ‘const std::vector<tgui::String>’}) to type ‘const std::vector<sf::String>&’
  277 |                 menubar->connectMenuItem(about_hierarchy, handle_menu_choice, eMenu::ABOUT_PRIEST)
      |                                          ^~~~~~~~~~~~~~~
build/obj/game/boe.menu.cpp:285:45: error: no matching function for call to ‘tgui::MenuBar::addMenuItem(const std::vector<tgui::String>&)’
  285 |                         menubar->addMenuItem(spell_hierarchy);
      |                         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&)’
  217 |         bool addMenuItem(const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:217:44: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const sf::String&’
  217 |         bool addMenuItem(const sf::String& text);
      |                          ~~~~~~~~~~~~~~~~~~^~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const sf::String&, const sf::String&)’
  236 |         bool addMenuItem(const sf::String& menu, const sf::String& text);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:236:14: note:   candidate expects 2 arguments, 1 provided
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:14: note: candidate: ‘bool tgui::MenuBar::addMenuItem(const std::vector<sf::String>&, bool)’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |              ^~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:253:57: note:   no known conversion for argument 1 from ‘const std::vector<tgui::String>’ to ‘const std::vector<sf::String>&’
  253 |         bool addMenuItem(const std::vector<sf::String>& hierarchy, bool createParents = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
build/obj/game/boe.menu.cpp:288:57: error: no matching function for call to ‘tgui::MenuBar::connectMenuItem(const std::vector<tgui::String>&, void (&)(eSpell), eSpell&)’
  288 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const sf::String&, const sf::String&, Func&&, const Args& ...)’
  131 |         unsigned int connectMenuItem(const sf::String& menu, const sf::String& menuItem, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:131:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:288:58: note:   cannot convert ‘spell_hierarchy’ (type ‘const std::vector<tgui::String>’) to type ‘const sf::String&’
  288 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                                          ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note: candidate: ‘template<class Func, class ... Args> unsigned int tgui::MenuBar::connectMenuItem(const std::vector<sf::String>&, Func&&, const Args& ...)’
  149 |         unsigned int connectMenuItem(const std::vector<sf::String>& hierarchy, Func&& handler, const Args&... args)
      |                      ^~~~~~~~~~~~~~~
/pr/Games/cboe/TGUI/Widgets/MenuBar.hpp:149:22: note:   template argument deduction/substitution failed:
build/obj/game/boe.menu.cpp:288:58: note:   cannot convert ‘spell_hierarchy’ (type ‘const std::vector<tgui::String>’) to type ‘const std::vector<sf::String>&’
  288 |                                 menubar->connectMenuItem(spell_hierarchy, handle_menu_spell, spell)
      |                                                          ^~~~~~~~~~~~~~~
scons: *** [build/obj/game/boe.menu.o] Error 1
scons: building terminated because of errors.

gcc --v gcc version 11.3.0 (Debian 11.3.0-12) 02:54:51-blap@BIGBOY:/pr/Games/cboe$ g++ -v gcc version 12.2.0 (Debian 12.2.0-14) If I can provide more info or if I should make a seperate issue, please let me know!

[EDIT] trying with g++-11 also fails with same-looking error dump. gcc version 11.3.0 (Debian 11.3.0-12) Thanks for your work on this!

NQNStudios commented 1 month ago

Did you install TGUI @clort81 ?

NQNStudios commented 1 month ago

It looks like you did, but can you try making sure you have version 0.9?

CelticMinstrel commented 1 month ago

Wrong version of TGUI seems a likely cause here, yes.

clort81 commented 1 month ago

Thanks

Tried pointing g++ to either g++-11 and g++12 but same error.

It seems odd to see this message when a fresh git clone didn't have it. I'll re-clone the repo and try minty-fresh build

clort81 commented 1 month ago

So, the scons -c seems to break my build with the C compiler works error. With a fresh git clone, it doesn't have the error! Instead, I now see this (excerpt)

...
g++ -o build/obj/pcedit/pc.editors.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/pcedit/deps/Catch2/single_include build/obj/pcedit/pc.editors.cpp
g++ -o build/obj/fileio/fileio_party.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/pcedit/deps/Catch2/single_include build/obj/fileio/fileio_party.cpp
g++ -o build/obj/view_dialogs.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/scenedit/deps/Catch2/single_include build/obj/view_dialogs.cpp
g++ -o build/obj/game/boe.menus.linux.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/game/deps/Catch2/single_include build/obj/game/boe.menus.linux.cpp
In file included from /usr/local/include/TGUI/Vector2.hpp:30,
                 from /usr/local/include/TGUI/Layout.hpp:30,
                 from /usr/local/include/TGUI/Animation.hpp:29,
                 from /usr/local/include/TGUI/Core.hpp:30,
                 from /usr/local/include/TGUI/TGUI.hpp:30,
                 from build/obj/game/boe.menu.hpp:7,
                 from build/obj/game/boe.menus.linux.cpp:9:
/usr/local/include/TGUI/String.hpp:87:18: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
   87 |             std::is_same_v<StringViewType, std::string_view>
      |                  ^~~~~~~~~
      |                  is_same
/usr/local/include/TGUI/String.hpp:87:18: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
   87 |             std::is_same_v<StringViewType, std::string_view>
      |                  ^~~~~~~~~
      |                  is_same
/usr/local/include/TGUI/String.hpp:87:49: error: ‘string_view’ is not a member of ‘std’
   87 |             std::is_same_v<StringViewType, std::string_view>
      |                                                 ^~~~~~~~~~~
/usr/local/include/TGUI/String.hpp:87:49: note: ‘std::string_view’ is only available from C++17 onwards
/usr/local/include/TGUI/String.hpp:87:49: error: ‘string_view’ is not a member of ‘std’
/usr/local/include/TGUI/String.hpp:87:49: note: ‘std::string_view’ is only available from C++17 onwards
/usr/local/include/TGUI/String.hpp:87:60: error: template argument 1 is invalid
   87 |             std::is_same_v<StringViewType, std::string_view>
      |                                                            ^
/usr/local/include/TGUI/String.hpp:87:60: error: template argument 2 is invalid
/usr/local/include/TGUI/String.hpp:359:55: error: ‘IsStringViewType’ does not name a type; did you mean ‘StringViewType’?
  359 |         template <typename StringViewType, typename = IsStringViewType<StringViewType>>
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       StringViewType
/usr/local/include/TGUI/String.hpp:359:71: error: expected ‘>’ before ‘<’ token
  359 |         template <typename StringViewType, typename = IsStringViewType<StringViewType>>
      |                                                                       ^
/usr/local/include/TGUI/String.hpp:365:55: error: ‘IsStringViewType’ does not name a type; did you mean ‘StringViewType’?
  365 |         template <typename StringViewType, typename = IsStringViewType<StringViewType>>
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       StringViewType
/usr/local/include/TGUI/String.hpp:365:71: error: expected ‘>’ before ‘<’ token
  365 |         template <typename StringViewType, typename = IsStringViewType<StringViewType>>
      |                                                                       ^
/usr/local/include/TGUI/String.hpp:394:18: error: expected type-specifier
  394 |         operator std::u32string_view() const noexcept
      |                  ^~~
/usr/local/include/TGUI/String.hpp:736:28: error: ‘std::u32string_view’ has not been declared
  736 |         bool contains(std::u32string_view sv) const noexcept;
      |                            ^~~~~~~~~~~~~~
/usr/local/include/TGUI/String.hpp:771:31: error: ‘std::u32string_view’ has not been declared
  771 |         std::size_t find(std::u32string_view sv, std::size_t pos = 0) const noexcept;
      |                               ^~~~~~~~~~~~~~
/usr/local/include/TGUI/String.hpp:1466:29: error: ‘u32string_view’ in namespace ‘std’ does not name a type; did you mean ‘u32string’?
 1466 |     using StringView = std::u32string_view;
      |                             ^~~~~~~~~~~~~~
      |                             u32string
/usr/local/include/TGUI/String.hpp:1467:33: error: ‘string_view’ in namespace ‘std’ does not name a type
 1467 |     using CharStringView = std::string_view;
      |                                 ^~~~~~~~~~~
/usr/local/include/TGUI/String.hpp:1467:28: note: ‘std::string_view’ is only available from C++17 onwards
 1467 |     using CharStringView = std::string_view;
      |                            ^~~
In file included from /usr/local/include/TGUI/Timer.hpp:31,
                 from /usr/local/include/TGUI/Core.hpp:32,
                 from /usr/local/include/TGUI/TGUI.hpp:30,
                 from build/obj/game/boe.menu.hpp:7,
                 from build/obj/game/boe.menus.linux.cpp:9:
/usr/local/include/TGUI/Optional.hpp:40:27: error: ‘optional’ in namespace ‘std’ does not name a template type
   40 |     using Optional = std::optional<T>;
      |                           ^~~~~~~~
/usr/local/include/TGUI/Optional.hpp:40:22: note: ‘std::optional’ is only available from C++17 onwards
   40 |     using Optional = std::optional<T>;
      |                      ^~~
In file included from /usr/local/include/TGUI/Core.hpp:32,
                 from /usr/local/include/TGUI/TGUI.hpp:30,
                 from build/obj/game/boe.menu.hpp:7,
                 from build/obj/game/boe.menus.linux.cpp:9:
/usr/local/include/TGUI/Timer.hpp:162:16: error: ‘Optional’ does not name a type
  162 |         static Optional<Duration> getNextScheduledTime();
      |                ^~~~~~~~
In file included from /usr/local/include/TGUI/Global.hpp:35,
                 from /usr/local/include/TGUI/Signal.hpp:31,
                 from /usr/local/include/TGUI/Widget.hpp:31,
                 from /usr/local/include/TGUI/Core.hpp:33,
                 from /usr/local/include/TGUI/TGUI.hpp:30,
                 from build/obj/game/boe.menu.hpp:7,
                 from build/obj/game/boe.menus.linux.cpp:9:
/usr/local/include/TGUI/Filesystem.hpp:80:64: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
   80 |             template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                ^~~~~~~~~
      |                                                                is_same
/usr/local/include/TGUI/Filesystem.hpp:80:64: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
   80 |             template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                ^~~~~~~~~
      |                                                                is_same
/usr/local/include/TGUI/Filesystem.hpp:80:89: error: ‘filesystem’ is not a member of ‘std’; did you mean ‘system’?
   80 |             template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                                         ^~~~~~~~~~
      |                                                                                         system
/usr/local/include/TGUI/Filesystem.hpp:80:89: error: ‘filesystem’ is not a member of ‘std’; did you mean ‘system’?
   80 |             template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                                         ^~~~~~~~~~
      |                                                                                         system
/usr/local/include/TGUI/Filesystem.hpp:80:105: error: template argument 1 is invalid
   80 |             template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                                                         ^
/usr/local/include/TGUI/Filesystem.hpp:80:105: error: template argument 2 is invalid
/usr/local/include/TGUI/Filesystem.hpp:80:113: error: expected unqualified-id before ‘=’ token
   80 |            template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0>
      |                                                                                                                ^

/usr/local/include/TGUI/Filesystem.hpp:171:13: error: ‘operator const int’ does not name a type
  171 |             operator const std::filesystem::path&() const
      |             ^~~~~~~~
/usr/local/include/TGUI/Filesystem.hpp:247:18: error: ‘filesystem’ in namespace ‘std’ does not name a type; did you mean ‘system’?
...

This is with TGUI-0.9.zip from github.

NQNStudios commented 1 month ago

Oh, when you call cmake on TGUI you need to do it like this:

TGUI_CXX_STANDARD=14 cmake .

look at the script in .github/workflows/scripts/linux/install-tgui.sh to see.

Sorry it’s so complicated.

On Wed, May 29, 2024 at 10:22 PM clort81 @.***> wrote:

So, the scons -c seems to break my build with the C compiler works error. With a fresh git clone, it doesn't have the error! Instead, I now see this (excerpt)

...g++ -o build/obj/pcedit/pc.editors.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/pcedit/deps/Catch2/single_include build/obj/pcedit/pc.editors.cpp g++ -o build/obj/fileio/fileio_party.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/pcedit/deps/Catch2/single_include build/obj/fileio/fileio_party.cpp g++ -o build/obj/view_dialogs.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/scenedit/deps/Catch2/single_include build/obj/view_dialogs.cpp g++ -o build/obj/game/boe.menus.linux.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/game/deps/Catch2/single_include build/obj/game/boe.menus.linux.cpp In file included from /usr/local/include/TGUI/Vector2.hpp:30, from /usr/local/include/TGUI/Layout.hpp:30, from /usr/local/include/TGUI/Animation.hpp:29, from /usr/local/include/TGUI/Core.hpp:30, from /usr/local/include/TGUI/TGUI.hpp:30, from build/obj/game/boe.menu.hpp:7, from build/obj/game/boe.menus.linux.cpp:9: /usr/local/include/TGUI/String.hpp:87:18: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’? 87 | std::is_same_v<StringViewType, std::string_view> | ^~~~~ | is_same /usr/local/include/TGUI/String.hpp:87:18: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’? 87 | std::is_same_v<StringViewType, std::string_view> | ^~~~~ | is_same /usr/local/include/TGUI/String.hpp:87:49: error: ‘string_view’ is not a member of ‘std’ 87 | std::is_same_v<StringViewType, std::string_view> | ^~~ /usr/local/include/TGUI/String.hpp:87:49: note: ‘std::string_view’ is only available from C++17 onwards /usr/local/include/TGUI/String.hpp:87:49: error: ‘string_view’ is not a member of ‘std’ /usr/local/include/TGUI/String.hpp:87:49: note: ‘std::string_view’ is only available from C++17 onwards /usr/local/include/TGUI/String.hpp:87:60: error: template argument 1 is invalid 87 | std::is_same_v<StringViewType, std::string_view> | ^ /usr/local/include/TGUI/String.hpp:87:60: error: template argument 2 is invalid /usr/local/include/TGUI/String.hpp:359:55: error: ‘IsStringViewType’ does not name a type; did you mean ‘StringViewType’? 359 | template <typename StringViewType, typename = IsStringViewType> | ^~~~ | StringViewType /usr/local/include/TGUI/String.hpp:359:71: error: expected ‘>’ before ‘<’ token 359 | template <typename StringViewType, typename = IsStringViewType> | ^ /usr/local/include/TGUI/String.hpp:365:55: error: ‘IsStringViewType’ does not name a type; did you mean ‘StringViewType’? 365 | template <typename StringViewType, typename = IsStringViewType> | ^~~~ | StringViewType /usr/local/include/TGUI/String.hpp:365:71: error: expected ‘>’ before ‘<’ token 365 | template <typename StringViewType, typename = IsStringViewType> | ^ /usr/local/include/TGUI/String.hpp:394:18: error: expected type-specifier 394 | operator std::u32string_view() const noexcept | ^~~ /usr/local/include/TGUI/String.hpp:736:28: error: ‘std::u32string_view’ has not been declared 736 | bool contains(std::u32string_view sv) const noexcept; | ^~~~~~ /usr/local/include/TGUI/String.hpp:771:31: error: ‘std::u32string_view’ has not been declared 771 | std::size_t find(std::u32string_view sv, std::size_t pos = 0) const noexcept; | ^~~~~~ /usr/local/include/TGUI/String.hpp:1466:29: error: ‘u32string_view’ in namespace ‘std’ does not name a type; did you mean ‘u32string’? 1466 | using StringView = std::u32string_view; | ^~~~~~ | u32string /usr/local/include/TGUI/String.hpp:1467:33: error: ‘string_view’ in namespace ‘std’ does not name a type 1467 | using CharStringView = std::string_view; | ^~~ /usr/local/include/TGUI/String.hpp:1467:28: note: ‘std::string_view’ is only available from C++17 onwards 1467 | using CharStringView = std::string_view; | ^~~ In file included from /usr/local/include/TGUI/Timer.hpp:31, from /usr/local/include/TGUI/Core.hpp:32, from /usr/local/include/TGUI/TGUI.hpp:30, from build/obj/game/boe.menu.hpp:7, from build/obj/game/boe.menus.linux.cpp:9: /usr/local/include/TGUI/Optional.hpp:40:27: error: ‘optional’ in namespace ‘std’ does not name a template type 40 | using Optional = std::optional; | ^~~~ /usr/local/include/TGUI/Optional.hpp:40:22: note: ‘std::optional’ is only available from C++17 onwards 40 | using Optional = std::optional; | ^~~ In file included from /usr/local/include/TGUI/Core.hpp:32, from /usr/local/include/TGUI/TGUI.hpp:30, from build/obj/game/boe.menu.hpp:7, from build/obj/game/boe.menus.linux.cpp:9: /usr/local/include/TGUI/Timer.hpp:162:16: error: ‘Optional’ does not name a type 162 | static Optional getNextScheduledTime(); | ^~~~ In file included from /usr/local/include/TGUI/Global.hpp:35, from /usr/local/include/TGUI/Signal.hpp:31, from /usr/local/include/TGUI/Widget.hpp:31, from /usr/local/include/TGUI/Core.hpp:33, from /usr/local/include/TGUI/TGUI.hpp:30, from build/obj/game/boe.menu.hpp:7, from build/obj/game/boe.menus.linux.cpp:9: /usr/local/include/TGUI/Filesystem.hpp:80:64: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’? 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^~~~~ | is_same /usr/local/include/TGUI/Filesystem.hpp:80:64: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’? 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^~~~~ | is_same /usr/local/include/TGUI/Filesystem.hpp:80:89: error: ‘filesystem’ is not a member of ‘std’; did you mean ‘system’? 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^~~~~~ | system /usr/local/include/TGUI/Filesystem.hpp:80:89: error: ‘filesystem’ is not a member of ‘std’; did you mean ‘system’? 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^~~~~~ | system /usr/local/include/TGUI/Filesystem.hpp:80:105: error: template argument 1 is invalid 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^ /usr/local/include/TGUI/Filesystem.hpp:80:105: error: template argument 2 is invalid /usr/local/include/TGUI/Filesystem.hpp:80:113: error: expected unqualified-id before ‘=’ token 80 | template <typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>, int> = 0> | ^

/usr/local/include/TGUI/Filesystem.hpp:171:13: error: ‘operator const int’ does not name a type 171 | operator const std::filesystem::path&() const | ^~~~ /usr/local/include/TGUI/Filesystem.hpp:247:18: error: ‘filesystem’ in namespace ‘std’ does not name a type; did you mean ‘system’? ...

— Reply to this email directly, view it on GitHub https://github.com/calref/cboe/pull/354#issuecomment-2138649629, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATXBKKOYIBXU3DDTUDH5MTZE2SR7AVCNFSM6AAAAABIP2X55SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZYGY2DSNRSHE . You are receiving this because you authored the thread.Message ID: @.***>

NQNStudios commented 1 month ago

I'll have to put all this in the README.md

clort81 commented 1 month ago

The TGUI_CXX_STANDARD=14 cmake . invocation didn't get me farther, but the .github/workflows/scripts/linux/install-tgui.sh did!

Had to manually cp /pr/Games/./TGUI/pkgconfig/tgui.pc /usr/local/lib/pkgconfig/ because the script didn't have write perms.

Seems to get most of the way through, but

g++ -o build/obj/test/catch.o -c -std=c++14 -include global.hpp -DTIXML_USE_TICPP -I/pr/Games/cboe -Isrc -Isrc/fileio/gzstream -Isrc/fileio/xml-parser -Ibuild/obj/test/deps/Catch2/single_include build/obj/test/catch.cpp
build/obj/test/catch.cpp:4:10: fatal error: catch.hpp: No such file or directory
    4 | #include "catch.hpp"
      |          ^~~~~~~~~~~
compilation terminated.
clort81 commented 1 month ago

Disabling the test in SConstruct got me a working build

env.VariantDir('#build/obj/test', 'test')

NQNStudios commented 1 month ago

To get the tests running you need to call

git submodule update --init

to clone a dependency the tests have.

So glad you got the build working! :)

On Thu, May 30, 2024 at 2:45 AM clort81 @.***> wrote:

Disabling the test in SConstruct got me a working build

env.VariantDir('#build/obj/test', 'test')

— Reply to this email directly, view it on GitHub https://github.com/calref/cboe/pull/354#issuecomment-2139060890, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATXBKLXFLOB4F7PJ5U4IF3ZE3RJTAVCNFSM6AAAAABIP2X55SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZZGA3DAOBZGA . You are receiving this because you authored the thread.Message ID: @.***>

clort81 commented 1 month ago

"git submodule update --init"

If a git clone --recursive is needed to build the project, should that be in the README?

NQNStudios commented 1 month ago

It should definitely be in the README, but what if someone clones the repository before they read it? 😂

On Thu, May 30, 2024 at 7:54 PM clort81 @.***> wrote:

"git submodule update --init"

If a git clone --recursive is needed to build the project, should that be in the README?

— Reply to this email directly, view it on GitHub https://github.com/calref/cboe/pull/354#issuecomment-2141104349, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATXBKOQ2O35V6PR4C4K44LZE7J6JAVCNFSM6AAAAABIP2X55SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBRGEYDIMZUHE . You are receiving this because you authored the thread.Message ID: @.***>