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
openSUSE Build Service is sponsored by