Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:rhabacker:branches:windows:mingw:win32:snapshots
mingw32-installer-base
macros.mingw32-installer
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File macros.mingw32-installer of Package mingw32-installer-base
# Windows installer support for mingw32 # # @author Ralf Habacker <ralf.habacker@freenet.de> # # Example: # ... # # %_mingw32_installer_package -n mingw32-dbus-1 -p DBus-1 -P "DBus-1, a message bus system" # # %prep # %_mingw32_installer_prep # # %build # %_mingw32_installer_build -p dbus-1 -P DBus-1 -l $license_file -r mingw32-dbus-1 -s %{SOURCE0} # # %install # %_mingw32_installer_install # # Template for portable and installer packages. # # -n <name> rpm package name prefix e.g mingw32-kmymoney # -p <name> package name in summary # -P <name> Package name in description # %_mingw32_installer_package(n:p:P:) \ BuildRequires: cmake >= 2.8.12 \ BuildRequires: mingw32-cross-nsis \ BuildRequires: mingw32-filesystem \ BuildRequires: p7zip \ \ %package %{-n:-n %{-n*}-}portable \ Summary: %{-p*} portable image \ License: %{license} \ Group: %{group} \ BuildArch: noarch \ \ %description %{-n:-n %{-n*}-}portable \ This package contains a 7z compressed portable installation \ image of %{-P*}. \ \ %package %{-n:-n %{-n*}-}setup \ Summary: %{-p*} setup installer \ License: %{license} \ Group: %{group} \ BuildArch: noarch \ \ %description %{-n:-n %{-n*}-}setup \ This package contains a setup installer of %{-P*}. \ \ %package %{-n:-n %{-n*}-}debugpackage \ Summary: %{-p*} debug package \ License: %{license} \ Group: %{group} \ BuildArch: noarch \ \ %description %{-n:-n %{-n*}-}debugpackage \ This package contains debug informations for the portable package and the installer of %{-P*}. \ \ %package %{-n:-n %{-n*}-}src \ Summary: %{-p*} source package \ License: %{license} \ Group: %{group} \ BuildArch: noarch \ \ %description %{-n:-n %{-n*}-}src \ This package contains the source files of %{-P*} \ \ %files %{-n:-n %{-n*}-}setup\ %defattr(-,root,root) \ /*.exe \ \ %files %{-n:-n %{-n*}-}portable \ %defattr(-,root,root) \ /*-portable.7z \ \ %files %{-n:-n %{-n*}-}debugpackage \ %defattr(-,root,root) \ /*-debug.7z \ \ %files %{-n:-n %{-n*}-}src \ %defattr(-,root,root) \ /*-src.7z # # %prep macro for creating installer and portable packages # # Files created below $PWD/tmp after calling this macro will # be added to the generated package including the directory # hierarchy. # # This macro is intended to be called in the %prep section. # %_mingw32_installer_prep %setup -q -c -T # # %build macro for creating installer and portable packages # # This macro creates setup installer, portable package, # 7z compressed source and debug symbol package # # -P <name> full package name in installer e.g. KMyMoney # -c create start.bat pointing to executable provided with -e option in top level directory # -d Enable debugging of cmake configuring # -e <executable> Application for which a start menu entry is to be added (e.g kmymoney) # This option also adds a checkbox to run the given application when the installer exits # -f "<extension list>" # Map file extensions (e.g. '.txt') to the installed executable # <extension list>: <ext>[;<ext>] # -g <generator> Specify supported output formats (optional, default is NSIS;7Z) # -h <url> help link for installer (optional, uses global spec variable Url: if not specified) # -l <file> license file to be included in the installer # -p <name> short package name in installer e.g. kmymoney # -r <name> package name to get version from e.g. mingw32-kmymoney # -s <source tar ball> source tar ball e.g. %{SOURCE0} (optional) # -u <url> url info for installer (optional, uses global spec variable Url: if not specified) # # KDE auto shutdown support (optional, requires mingw32-kwinshutdown(5)) # -a <application> application name(s) to watch for auto shutdown support e.g. kmymoney or kmymoney,onlinequoteseditor # -t <timeout> timeout for auto shutdown support (default 5 seconds) # -5 Use KF5 variant for watcher executable and install locations # # # This macro is intended to be called in the %build section. # %_mingw32_installer_build(a:cde:f:g:h:l:p:P:r:s:t:u:5) \ pkgname=%{-r:%{-r*}}%{!-r:%{name}} \ tarball=%{-s:%{-s*}} \ name=%{-p:%{-p*}} \ cmake_options=%{-d:--trace-expand} \ display_name=%{-P:%{-P*}}%{!-P:%{-p*}} \ help_link=%{-h:%{-h*}}%{!-h:%{url}} \ url_info=%{-u:%{-u*}}%{!-u:%{url}} \ shutdown_apps=%{-a:%{-a*}} \ start_batch_file=%{-c:1} \ executable=%{-e:%{-e*}} \ finish_run=%{-e:%{-e*}.exe} \ installed_icon_name=%{-e:bin/%{-e*}.exe} \ extensions=%{-f:%{-f*}} \ generator=%{-g:%{-g*}}%{!-g:"NSIS;7Z"} \ timeout=%{-t:%{-t*}}%{!-t:5} \ cp /etc/rpm/macros.mingw32-installer.CMakeLists.txt CMakeLists.txt \ local_install_dir=$PWD/tmp/ \ if test -n "$start_batch_file"; then \ mkdir -p $local_install_dir \ sed "s,@EXECUTABLE@,$executable,g" /etc/rpm/macros.mingw32-installer.start.bat.in > $local_install_dir/start.bat \ fi \ if test -n "$shutdown_apps"; then \ suffix=%{-5:5} \ watcher=kwinshutdown$suffix \ if test "$suffix" -eq "5"; then \ autostart_install_dir=$local_install_dir/etc/xdg/autostart \ else \ autostart_install_dir=$local_install_dir/share/autostart \ fi \ mkdir -p $autostart_install_dir \ apps=$(echo $shutdown_apps | sed 's#,# --watch #g') \ sed "s,@WATCH_APPLICATIONS@,--watch $apps,g;s,@TIMEOUT@,$timeout,g;s,@WATCHER@,$watcher,g" /etc/rpm/macros.mingw32-installer.kwinshutdown.desktop.in > $autostart_install_dir/${watcher}.desktop \ fi \ if test -d "$local_install_dir"; then \ local_install_opt="-DPACKAGE_LOCAL_INSTALL_DIR=$local_install_dir" \ fi \ suffix=mingw32 \ source_version=$(rpm -q $pkgname | sed "s,^$pkgname-,,g;s,.noarch,,g;s,\-.*,,g") \ binary_version=$(rpm -q $pkgname | sed "s,^$pkgname-,,g;s,.noarch,,g") \ license_file=%{-l:%{-l*}}%{!-l:/usr/share/doc/packages/$pkgname/COPYING} \ if test -f $license_file; then \ license_opt=-DPACKAGE_LICENSE_FILE=$license_file \ fi \ \ meta_install_dir=$local_install_dir/meta \ mkdir -p $meta_install_dir \ rpm -qa | grep "^$suffix" | grep -v "cross-" | sort > $meta_install_dir/packages.log \ cmake \\\ -DCPACK_GENERATOR="$generator" \\\ -DPACKAGE_DISPLAY_NAME="$display_name $source_version" \\\ -DPACKAGE_FINISH_RUN=$finish_run \\\ -DPACKAGE_HELP_LINK=$help_link \\\ -DPACKAGE_INSTALLED_ICON_NAME=$installed_icon_name \\\ -DPACKAGE_INSTALL_DIR=%{_mingw32_prefix}/ \\\ -DPACKAGE_NAME=$name \\\ -DPACKAGE_REGISTER_EXTENSIONS="$extensions" \\\ -DPACKAGE_URL_INFO=$url_info \\\ -DPACKAGE_VERSION=$source_version \\\ $cmake_options \\\ $license_opt \\\ $local_install_opt \\\ . \ echo "show symlinks in installation root, which may lead to left over files after uninstalling" \ find -type l -ls \ cpack --verbose --debug \ case "$generator" in \ *NSIS*) \ mv *.exe $name-$suffix-$binary_version-setup.exe \ ;; \ esac \ case "$generator" in \ *7Z*) \ mv *.7z $name-$suffix-$binary_version-portable.7z \ ;; \ esac \ \ mkdir dbgtmp \ cd dbgtmp \ dirs=%{_mingw32_prefix}/src \ if test -d "%{_mingw32_prefix}/symbols"; then \ dirs+=" %{_mingw32_prefix}/symbols" \ fi \ cp -av $dirs . \ for i in $(cd %{_mingw32_prefix}; find -name '*.debug'); do \ d=$(dirname $i) \ install -d $d \ install %{_mingw32_prefix}/$i $d \ done \ 7za a ../$name-$suffix-$binary_version-debug.7z . \ cd .. \ \ mkdir srctmp \ cd srctmp \ case $tarball in \ *.tar.xz) tar -xJf $tarball ;; \ *.tar.bz2) tar -xjf $tarball ;; \ *.tar.gz) tar -xzf $tarball ;; \ *) echo "unsupported tarball format";; \ esac \ if test -f $tarball; then \ 7za a ../$name-$source_version-src.7z * \ fi # # %install macro for creating installer and portable packages # # This macro is intended to be called in the %install section. # %_mingw32_installer_install \ mkdir -p %{buildroot} \ executables=$(ls *.exe 2> /dev/null | wc -l) \ if test $executables -ne 0; then \ install -m 644 *.exe %{buildroot} \ fi \ install -m 644 *.7z %{buildroot}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor