G. Budowanie NSIS

Ten dokument zgodny jest z NSIS 3.1

Wraz z NSIS 2.07 wprowadzono nowy system budowania NSIS, oparty na SCons. System ten może utworzyć cały pakiet NSIS, więc nie ma już potrzeby kompilacji projektu po projekcie. Pozwala on na jednoczesne tworzenie kilku zadań, instalację bez instalatora zarówno na platformie Windows jak i POSIX oraz łatwą kompilację z symbolami debugera.

Oficjalne wydanie NSIS zostało utworzone przy użyciu środowiska MSVC6 Service Pack 5 (mirror) z zainstalowanym dodatkiem Processor Pack oraz pakietem Platform SDK (5.2.3790.0) z lutego 2003.





G.1 Budowanie NSIS


Kod źródłowy dostępny jest poprzez SVN oraz jako oddzielny pakiet rozprowadzany z każdą dystrybucją NSIS.

Aby skompilować NSIS, musisz mieć zainstalowany Python oraz SCons. Obecnie obsługiwaną wersją oprogramowania SCons jest wersja 1.2.0 lub nowsza. Każda wersja oprogramowania Python większa niż 1.6 jest obsługiwana.

NSIS używa bibliotek kompresji zlib. W konsekwencji plik nagłówkowy oraz pliki biblioteki zlib muszą być zainstalowane.

Jeśli opisywane pliki zlib nie są zainstalowane, można je zainstalowć za pomocą menedżera pakietów (apt-get, aptitude, rpm, yum) na platformach POSIX. Innym rozwiązaniem jest samodzielna kompilacja biblioteki zlib i jej instalacja.

Na platformie Windows zaleca się pobrać biblioteki zlib ze strony projektu http://nsis.sourceforge.net/Zlib. Następnie należy wypakować zawartość archiwum zip do wybranego katalogu, np. C:\dev\zlib-1.2.7 i ustawić zmienną środowiskową ZLIB_W32, która zawiera ścieżkę dostępu do tego katalogu.

C:\>set ZLIB_W32=C:\dev\zlib-1.2.7

Możesz ewentualnie pominąć tworzenie zmiennej środowiskowej i przekazać ścieżkę dostępu do katalogu ZLIB_W32 poprzez skorzystanie z wiersza poleceń scons.

C:\dev\nsis>scons ZLIB_W32=C:\dev\zlib-1.2.7

Pliki nagłówkowe i biblioteki muszą znajdować się w katalogu %ZLIB_W32%. System scons dodatkowo wyszukuje pliki nagłówkowe zlib w katalogu %ZLIB_W32%\include, importowaną bibliotekę zdll.lib w katalogu %ZLIB_W32%\lib oraz bibliotekę łączoną dynamicznie zlib1.dll w katalogu %ZLIB_W32% oraz %ZLIB_W32%\lib.

Aby skompilować NSIS, otwórz konsolę, zmień katalog roboczy na katalog nadrzędny NSIS i wpisz scons. To wszystko. Na przykład:

C:\>cd dev\nsis
C:\dev\nsis>scons
scons: Reading SConscript files ...
Using Microsoft tools configuration
Checking for main() in C library gdi32... (cached) yes
Checking for main() in C library user32... (cached) yes
Checking for main() in C library version... (cached) yes
Checking for main() in C library pthread... (cached) no
Checking for main() in C library stdc++... (cached) no
Checking for main() in C library iconv... (cached) no
Checking for main() in C library libiconv... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
...

Aby zainstalować skompilowane pliki, wpisz:

scons PREFIX="C:\Program Files\NSIS" install

Aby utworzyć instalatora (tylko na platformie Windows), wpisz:

scons dist-installer

Aby utworzyć plik dystrybucji w archiwum zip, wpisz:

scons dist-zip

Aby stworzyć oba powyższe, wpisz:

scons dist

Aby zobaczyć pełną listę opcji, które oferuje system budowania, wpisz:

scons -h

Aby zobaczyć pełną listę opcji, które oferuje system SCons, wpisz:

scons -H

G.2 Budowanie na platformie Windows


SCons automatycznie wykryje zainstalowany Microsoft Visual C++. Jeśli szukasz darmowego kompilatora do skompilowania NSIS, polecamy środowisko Microsoft Visual C++ 2005 Express Edition.

Używając zestawu narzędzi Microsoft Visual C++ Toolkit 2003, dodaj do linii kompilacji wpis MSTOOLKIT=yes:

scons MSTOOLKIT=yes

W przypadku błędów kompilatora lub niemożności znalezienia oprogramowania Platform SDK, użyj:

set MSSDK=C:\Ścieżka\do\oprogramowania\Platform SDK
set VCToolkitInstallDir=C:\Ścieżka\do\oprogramowania\VCToolkit
scons MSTOOLKIT=yes

Oprogramowanie open-source MinGW również może być użyte do kompilacji NSIS, ale wynikiem tego są dużo większe instalatory. Borland C++ lub Open Watcom C/C++ mogą również działać, lecz nie były testowane.

Aby skompilować dokumentację jako plik CHM, program hhc.exe musi być wpisany do zmiennej środowiskowej PATH. Dostępny jest on jako składnik HTML Help Workshop.

Aby skompilować program Menu NSIS, zainstaluj wxWidgets 2.8, utwórz zmienną środowiskową WXWIN, która zawierać będzie ścieżkę do katalogu instalacji wxWidgets. Następnie uruchom plik wsadowy Contrib\NSIS Menu\wx\wxbuild.bat i na koniec skompiluj NSIS.

Ważne informacje dla użytkowników Microsoft Visual C++ 6.0

Pakiet oprogramowania Platform SDK 2003 musi być zainstalowany, zanim przystąpisz do kompilacji NSIS. Możesz go pobrać z tej lokalizacji lub zamówić go na płycie CD.

Z powodu błędów w bibliotekach rozprowadzanych z Microsoft Visual C++ 6.0, niezainstalowanie pakietu Platform SDK spowoduje błąd przy używaniu polecenia CopyFiles. Przeczytaj ten temat forum (po angielsku), gdzie znajdziesz więcej informacji. Zainstalowanie pakietu Processor Pack jest wysoce zalecane, aby zmniejszyć rozmiar nagłówka instalatora.

Ważne informacje dla użytkowników Microsoft Visual C++ 2012

Instalatory utworzone przy użyciu tej wersji i nowszych nie będą mogły być uruchamiane w systemie Windows 9x lub Windows 2000. Najniższą wspieraną wersją dla Microsoft Visual C++ 2012 jest Windows XP.

G.3 Budowanie na platformie POSIX


Poczynając od NSIS 2.01, kompilator, makensis, również ma możliwość kompilacji na platformach POSIX (Portable Operating System Interface - Przenośny Interfejs Systemu Operacyjnego). Implementacje POSIX zawarte zostały w systemach takich jak Linux, *BSD, Mac OS X oraz inne. Jako, że wygenerowany instalator będzie uruchamiany na platformie Windows, wymagany jest cross-compiler (kompilator wieloplatformowy), aby go skompilować.

Opcja wiersza poleceń XGCC_W32_PREFIX może być użyta, aby określić kompilator wieloplatformowy dla architektury win32. Wartość XGCC_W32_PREFIX musi być prefiksem polecenia. Na przykład: XGCC_W32_PREFIX=i686-w64-mingw32 wskazuje na kompilator multiplatformowy MinGW-w64 dla architektury win32, jeśli jest dostępny w systemie kompilacji.

Jeśli nie ma dostępu do kompilatora wieloplatformowego, użyj poniższej składni:

scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all
      NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/ścieżka/do/wyodrębnionego/pliku/zip
      install-compiler

scons NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/ścieżka/do/wyodrębnionego/pliku/zip
      /ścieżka/do/wyodrębnionego/pliku/zip/LibraryLocal

Polecenie to powinno skompilować tylko program makensis i umieścić go w katalogu prekompilowanego pakietu, takiego jak nocne wydanie lub wydania jako archiwum zip (nsis-x.xx.zip). Prekompilowany pakiet musi być skompilowany przy użyciu tych samych źródeł co makensis. W szczególności, plik nagłówkowy Source\exehead\config.h, opcje przekazane Scons oraz plik nagłówkowy Source\exehead\fileform.h muszą być identyczne. Nocne wydania oraz wydania w formacie zip budowane są z domyślnymi opcjami.

Aby skompilować natywną wersję programu Menu NSIS, zainstaluj oprogramowanie wxWidgets 2.8 i skompiluj NSIS. Zmienna wx-config musi być w zmiennej środowiskowej PATH.

G.4 Nocne wydania


Nie ma potrzeby samodzielnej kompilacji NSIS dla Windows z najnowszych źródeł z SVN. Dostępne jest bowiem wydanie nocne. Wydanie takie generowane jest automatycznie co noc, przy użyciu ostatniej wersji kodu źródłowego z SVN. Nie istnieją oficjalne wydania tego typu na inne platformy.