Konfiguracja wxWidgets dla VSCode

WxWidgets to jeden z zestawów bibliotek pozwalający na tworzenie multiplatformowych aplikacji okienkowych. Najprostszym sposobem by zacząć pracę z wx jest zaopatrzenie się w Code::Blocks, który dodatkowo posiada dedykowany WYSIWYG do okienek o nazwie wxSmith. Jako że pożegnałem się z c::b na zawsze (albo przynajmniej taki miałem zamysł), pora przygotować sobie środowisko pod VSCode.

Instalacja wxWidgets

Po ściągnięciu paczki stąd (Development jak się bawisz, Stable jak piszesz coś poważniejszego) zainstaluj paczkę w wybranym folderze. Naiwny pomyślałby, że na tym zabawa się kończy. Otóż nie – ściągnięta paczka to tylko zestaw źródeł wx, trzeba je jeszcze skompilować, o czym powstał cały artykuł na oficjalnym wiki. Są oczywiście prekompilowane paczki, ale dość stare, zatem nie ma co się bać i robić swoje. Jako że mam TDM-GCC 5.1 wskazane komendy budowania nie zadziałały, zatem zgodnie z działem Troubleshooting zadziałała dopiero komenda:

Na tym zabawa się nie skończyła, gdyż spotkał mnie komunikat: gcc_swu\monolib_gdicmn.o: No such file or directory . Po chwili guglania okazało się, że komenda kompilacji jest za długa, zatem musiałem ją skrócić o parametry SHELL=CMD.exe -j4 . Polecam zrobić to w ostatnim kroku, gdyż parametr -j4  decyduje o liczbie rdzeni użytej podczas kompilacji.

Wszystko fajnie, ale podczas kompilacji przykładowego kodu wyrzucało mi pełno błędów z rodziny undefined reference to ... . Poczytałem trochę i okazało się, że sposób budowy MONOLITHIC jest niezalecany. Dodatkowo, flaga UNICODE już jest zbędna, jako że wersja ANSI została porzucona. Zatem ostateczne komendy do wstukania to:

Dodatkowo, aby uniknąć warningów podczas budowania projektów opartych o wxWidgets, w  include\wx\msw\setup.h  należy zdefiniować wszystkie wpisy  WXWIN_COMPATIBILITY_  na zero.

Sprzężenie z CMake

Pisanie makefile’i nie należy do najprzyjemniejszych zajęć. Z tego względu powstał CMake, w którym w wygodniejszej składni pisze się makefile makefile’a. 😉 Narzędzie to dość mocno się upowszechniło i stało się silnym standardem w różnej maści otwartych projektach.

Jedną z zalet CMake jest możliwość zlecenia mu automatycznego znalezienia bibliotek popularniejszych pakietów. Niestety skrypt od wxWidgets nie jest najwybitniejszy, dlatego CMake’owi trzeba trochę pomóc. W pliku cmake/share/cmake-3.8/Modules/FindwxWidgets.cmake znalazłem fragment kodu odpowiedzialny za znajdowanie instalacji wx:

Jak widać, wx szukany jest w katalogu głównym dysku C lub D. Jeśli zainstalowałeś go w miejscu nietypowym, musisz posiłkować się zmienną środowiskową WXWIN. Dodatkowo, posiadając wydanie 3.0.3 skrypt nie znajdzie poprawnego miejsca instalacji. Dodanie linii wxWidgets-3.0.3  naprawi tę bolączkę.

Po tym wszystkim pozostaje dodać obsługę wxWidgets do CMake’a projektu. Załatwią to poniższe linie zgodne z tutkiem na stronie wx:

Konfiguracja VSCode

Ten krok jest banalny z racji gotowego rozszerzenia CMake, które na dolnej belce dodaje wybór trybu budowania i przycisk “Build”. Z nieznanego mi powodu moje aplikacje lubią się crashować przy CMake’owym targecie debug, ale na chwilę obecną mi to nie przeszkadza. Include i browse paths należy skonfigurować w sposób podobny do poniższego:

 

Ten wpis został opublikowany w kategorii wxWidgets i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *