File mingw64-kjs.spec of Package mingw64-kjs
#
# spec file for package mingw64-kjs
#
# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define sonum 5
%define _tar_path 5.103
# Full KF5 version (e.g. 5.33.0)
%{!?_mingw64_kf5_version: %global _mingw64_kf5_version %{version}}
# Last major and minor KF5 version (e.g. 5.33)
%{!?_mingw64_kf5_bugfix_version: %define _mingw64_kf5_bugfix_version %(echo %{_mingw64_kf5_version} | awk -F. '{print $1"."$2}')}
%bcond_without lang
%define _name kjs
Name: mingw64-%{_name}
Version: 5.103.0
Release: 0
Summary: KDE Javascript engine
License: LGPL-2.1-or-later
Group: System/GUI/KDE
URL: https://www.kde.org
Source: https://download.kde.org/stable/frameworks/%{_tar_path}/portingAids/%{_name}-%{version}.tar.xz
%if %{with lang}
Source1: https://download.kde.org/stable/frameworks/%{_tar_path}/portingAids/%{_name}-%{version}.tar.xz.sig
Source2: frameworks.keyring
%endif
Patch0: 0001-mingw64-cross-compile-fix.patch
# for native builds
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Test)
BuildRequires: gcc-c++
BuildRequires: mingw64-cross-cmake
BuildRequires: mingw64-cross-extra-cmake-modules >= %{_mingw64_kf5_bugfix_version}
BuildRequires: pcre-devel
# for cross builds
BuildRequires: mingw64-cross-gcc-c++
BuildRequires: mingw64-extra-cmake-modules >= %{_mingw64_kf5_bugfix_version}
BuildRequires: mingw64-kf5-filesystem
BuildRequires: mingw64-pcre-devel
BuildRequires: perl
BuildRequires: mingw64(cmake:KF5DocTools) >= %{_mingw64_kf5_bugfix_version}
BuildRequires: mingw64(cmake:Qt5Core) >= 5.11.0
BuildRequires: mingw64(cmake:Qt5Test) >= 5.11.0
%_mingw64_package_header_debug
%description
This library provides an ECMAScript compatible interpreter. The ECMA standard
is based on well known scripting languages such as Netscape's JavaScript and
Microsoft's JScript.
%package -n mingw64-libKF5JS%{sonum}
Summary: KDE Javascript engine
Group: System/GUI/KDE
BuildArch: noarch
%description -n mingw64-libKF5JS%{sonum}
This library provides an ECMAScript compatible interpreter. The ECMA standard
is based on well known scripting languages such as Netscape's JavaScript and
Microsoft's JScript.
%package -n mingw64-libKF5JSApi%{sonum}
Summary: KDE Javascript engine
Group: System/GUI/KDE
%requires_ge mingw64-libKF5JS5
%requires_ge mingw64-libQt5Core5
BuildArch: noarch
%description -n mingw64-libKF5JSApi%{sonum}
This library provides an ECMAScript compatible interpreter. The ECMA standard
is based on well known scripting languages such as Netscape's JavaScript and
Microsoft's JScript.
%package -n mingw64-cross-kjs-tools
Summary: Native utilities for cross compiling of KDE Javascript engine
Group: Development/Libraries/KDE
%description -n mingw64-cross-kjs-tools
Native utilities used for cross compiling the KDE ECMAScript compatible interpreter.
%package devel
Summary: KDE Javascript engine: Build Environment
Group: Development/Libraries/KDE
Requires: mingw64-cross-kjs-tools
Requires: mingw64-extra-cmake-modules
Requires: mingw64-libKF5JS%{sonum} = %{version}
Requires: mingw64-libKF5JSApi%{sonum} = %{version}
Requires: mingw64(cmake:Qt5Core) >= 5.11.0
%if %{with lang}
Recommends: %{name}-devel-lang = %{version}
%endif
BuildArch: noarch
%description devel
This library provides an ECMAScript compatible interpreter. The ECMA standard
is based on well known scripting languages such as Netscape's JavaScript and
Microsoft's JScript. Development files.
%lang_package -n %{name}-devel
%_mingw64_debug_package
%prep
%setup -q -n %{_name}-%{version}
%patch -P 0 -p1
%build
cmake -B native-build -DCMAKE_INSTALL_PREFIX=/usr/%{_mingw64_target}
cmake --build native-build -t icemaker5
OPTIONS="-DICEMAKER_EXECUTABLE=$PWD/native-build/bin/icemaker5"
%_mingw64_cmake_kf5 -d build $OPTIONS
%_mingw64_cmake_build
%install
cmake --build native-build/src/kjs -t install/strip DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_prefix}/bin
ln -s ../%{_mingw64_target}/bin/icemaker5 %{buildroot}%{_prefix}/bin/%{_mingw64_target}-icemaker5
rm -rf %{buildroot}%{_prefix}/%{_mingw64_target}/{bin/kjs5,include,lib64,mkspecs,share}
%_mingw64_kf5_makeinstall -C build
chmod +x %{buildroot}%{_mingw64_kf5_datadir}/kjs/create_hash_table
%if %{with lang}
%_mingw64_find_lang %{_name} --with-man --all-name
%endif
%if %{with lang}
%files devel-lang -f %{_name}.lang
%endif
%files -n mingw64-libKF5JS%{sonum}
%license COPYING.LIB
%doc README*
%{_mingw64_kf5_bindir}/libKF5JS.dll
%files -n mingw64-libKF5JSApi%{sonum}
%license COPYING.LIB
%doc README*
%{_mingw64_kf5_bindir}/libKF5JSApi.dll
%files -n mingw64-cross-kjs-tools
%{_prefix}/%{_mingw64_target}/bin/icemaker5
%{_prefix}/bin/%{_mingw64_target}-icemaker5
%files devel
%{_mingw64_kf5_bindir}/kjs5.exe
%{_mingw64_kf5_bindir}/icemaker5.exe
%{_mingw64_kf5_libdir}/libKF5JS.dll.a
%{_mingw64_kf5_libdir}/libKF5JSApi.dll.a
%{_mingw64_kf5_libdir}/cmake/KF5JS/
%{_mingw64_kf5_includedir}/
%{_mingw64_kf5_datadir}/kjs/
%{_mingw64_kf5_mkspecsdir}/qt_KJSApi.pri
%{_mingw64_kf5_mkspecsdir}/qt_KJS.pri
%doc %lang(en) %{_mingw64_kf5_mandir}/*/kjs5.*
%changelog