From 15621e9b1399a0bd27440c48e5dcc8da35eb5767 Mon Sep 17 00:00:00 2001 From: Jarek Sacha Date: Fri, 1 Nov 2019 17:04:06 -0400 Subject: [PATCH 1/4] Mark next development release --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ac3afd9..51bdcb7 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ name := "ScalaFX Ensemble" -version := "1.13.0" +version := "1.13.1-SNAPSHOT" organization := "org.scalafx" From ac100174c92cc04975cf63d61c912a82e53eb45e Mon Sep 17 00:00:00 2001 From: Jarek Sacha Date: Fri, 1 Nov 2019 17:25:38 -0400 Subject: [PATCH 2/4] Remove obsolete sbt-native-packager setup #26 --- build.sbt | 27 --------------------------- project/plugins.sbt | 6 ------ 2 files changed, 33 deletions(-) diff --git a/build.sbt b/build.sbt index 51bdcb7..22e2672 100644 --- a/build.sbt +++ b/build.sbt @@ -78,30 +78,3 @@ resourceGenerators in Compile += Def.task { }.taskValue mainClass in Compile := Some("scalafx.ensemble.Ensemble") -mainClass in assembly := Some("scalafx.ensemble.Ensemble") - -// -// Configuration for sbt-native-packager / JDKPackagerPlugin -// - -enablePlugins(JDKPackagerPlugin) - -maintainer := "ScalaFX Organization (scalafx.org)" -packageSummary := "Collection of live ScalaFX examples" -packageDescription := "An application demonstrating ScalaFX code samples." - -lazy val iconGlob = sys.props("os.name").toLowerCase match { - case os if os.contains("mac") => "*.icns" - case os if os.contains("win") => "*.ico" - case _ => "*.png" -} - -jdkAppIcon := (sourceDirectory.value ** iconGlob).getPaths.headOption.map(file) -jdkPackagerType := "installer" - -// this is to help ubuntu 15.10 -antPackagerTasks in JDKPackager := (antPackagerTasks in JDKPackager).value orElse { - for { - f <- Some(file("/usr/lib/jvm/java-8-oracle/lib/ant-javafx.jar")) if f.exists() - } yield f -} diff --git a/project/plugins.sbt b/project/plugins.sbt index 41bdb28..9efbceb 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,9 +1,3 @@ scalacOptions ++= Seq("-unchecked", "-deprecation") -// assembly plugin to package and run the app -// [https://github.com/sbt/sbt-assembly] -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10") - -// Plugin to create native installers -addSbtPlugin("com.typesafe.sbt" %% "sbt-native-packager" % "1.4.1") From 72fffb425240a1e79606605380a3f52cc3bbc96d Mon Sep 17 00:00:00 2001 From: Jarek Sacha Date: Fri, 1 Nov 2019 17:28:23 -0400 Subject: [PATCH 3/4] Remove reference to jdkPackager #26 --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 479c931..551f189 100644 --- a/README.md +++ b/README.md @@ -73,14 +73,6 @@ This project is in a "stable" pre-release state, the main missing future planned for building native executables. -Creating Native Installer -------------------------- -To create a native installer for current OS (Windows, Linux or MacOSX) issue following command: - -``` -sbt jdkPackager:packageBin -``` - Mailing list ------------ From 7ee7d76b76a77701785b291b71243ee7517573bd Mon Sep 17 00:00:00 2001 From: Jarek Sacha Date: Sat, 9 Nov 2019 13:19:05 -0500 Subject: [PATCH 4/4] Create installer using install4j #25 --- .gitignore | 2 + README.md | 89 +++- install4j.sbt | 11 + installer/ScalaFX_Ensemble.install4j | 462 ++++++++++++++++++ installer/icons/SFX-128.png | Bin 0 -> 5099 bytes installer/icons/SFX-16.png | Bin 0 -> 484 bytes installer/icons/SFX-256.png | Bin 0 -> 10598 bytes installer/icons/SFX-32.png | Bin 0 -> 1280 bytes installer/icons/SFX-48.png | Bin 0 -> 1886 bytes installer/icons/SFX-64.png | Bin 0 -> 2508 bytes project/sbt-install4j.sbt | 2 + .../package/linux/ScalaFX-icon-64x64.png | Bin 23615 -> 0 bytes .../package/macosx/ScalaFX-icon-64x64.icns | Bin 4016 -> 0 bytes .../package/windows/ScalaFX-icon-64x64.ico | Bin 16958 -> 0 bytes .../resources/scalafx/ensemble/sbt/build.sbt | 8 +- .../ensemble/sbt/project/build.properties | 2 +- src/universal/conf/jvmopts | 4 - 17 files changed, 547 insertions(+), 33 deletions(-) create mode 100644 install4j.sbt create mode 100644 installer/ScalaFX_Ensemble.install4j create mode 100644 installer/icons/SFX-128.png create mode 100644 installer/icons/SFX-16.png create mode 100644 installer/icons/SFX-256.png create mode 100644 installer/icons/SFX-32.png create mode 100644 installer/icons/SFX-48.png create mode 100644 installer/icons/SFX-64.png create mode 100644 project/sbt-install4j.sbt delete mode 100644 src/deploy/package/linux/ScalaFX-icon-64x64.png delete mode 100644 src/deploy/package/macosx/ScalaFX-icon-64x64.icns delete mode 100644 src/deploy/package/windows/ScalaFX-icon-64x64.ico delete mode 100644 src/universal/conf/jvmopts diff --git a/.gitignore b/.gitignore index 986010e..5382970 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ bin /.idea /.idea_modules /.worksheet +/installer/media/ +*.install4j~ diff --git a/README.md b/README.md index 551f189..6af15aa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ScalaFX Ensemble ================ ScalaFX Ensemble provides a gallery of over 60 sample applications illustrating how -[ScalaFX](http://scalafx.org) can be used for creation of user interfaces controls, charts, graphics, media and web views. +[ScalaFX] can be used for creation of user interfaces controls, charts, graphics, media and web views. ![ScalaFX Ensemble Application - Demo navigation](http://scalafx.github.io/scalafx-ensemble/images/ScalaFX_Ensemble-grid-50p.png) @@ -10,18 +10,13 @@ ScalaFX Ensemble provides a gallery of over 60 sample applications illustrating ![ScalaFX Ensemble Application - Demo source](http://scalafx.github.io/scalafx-ensemble/images/ScalaFX_Ensemble-source-50p.png) Each example can be executed within the ScalaFX Ensemble application, its source code can be easily seen there too. -Example can be saved, from within ScalaFX Ensemble application, as an stand-alone [SBT](http://www.scala-sbt.org/) project, -with option to convert to [Eclipse](http://www.eclipse.org/) or [IntelliJ IDEA](http://www.jetbrains.com/idea/) project. +Example can be saved, from within ScalaFX Ensemble application, as an stand-alone [SBT] project. [IntelliJ IDEA] can load SBT projects if you have IntelliJ's Scala plugin installed. SBT projects can be converted to [Eclipse] projects using [sbteclipse] plugin. ScalaFX Ensemble can be used by ScalaFX beginners as a set of examples and by more experienced users as a visual reference. Larger size screenshots and information about changes can be found on the -[ScalaFX Ensemble Home Page](http://scalafx.github.com/scalafx-ensemble/). - -This project is inspired by [JavaFX Ensemble](http://www.oracle.com/technetwork/java/javafx/samples/index.html). - -Larger size screenshots and information about changes can be found on the -[ScalaFX Ensemble Home Page](http://scalafx.github.com/scalafx-ensemble/) +[ScalaFX Ensemble Home Page]. +This project is inspired by [JavaFX Ensemble]. How to run ScalaFX Ensemble --------------------------- @@ -33,19 +28,18 @@ In the future, we will also provide an excitable version. To compile and run the project you only need to have: -* [Java 11 JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html). -* [SBT](http://www.scala-sbt.org/) (v.1 or newer) installed. -* ScalaFX Ensemble source code +* [Java JDK] 11 or newer +* [SBT] 1 or newer +* ScalaFX Ensemble source code. All missing dependencies, including proper version of Scala and ScalaFX, will be downloaded by SBT. -All missing dependencies, including proper version of Scala and ScalaFX, will be downloaded by SBT. +Alternatively you can download a stand-alone installer from the [Releases], see [Stand-Alone Application](#stand-alone-application) below. -The older version of ScalaFX Ensemble for ScalaFX 8 on branch [SFX-8](https://github.com/scalafx/scalafx-ensemble/tree/SFX-8), ScalaFX 2.2 (Java 1.7) is on branch +The older version of ScalaFX Ensemble for ScalaFX 8 are on branch [SFX-8](https://github.com/scalafx/scalafx-ensemble/tree/SFX-8), ScalaFX 2.2 (Java 1.7) is on branch [SFX-2](https://github.com/scalafx/scalafx-ensemble/tree/SFX-2). ### Compile and Run using SBT ### -Once you have [JDK 11](http://www.oracle.com/technetwork/java/javase/downloads/index.html) -and [SBT](http://www.scala-sbt.org/) installed, you can compile and run ScalaFX Ensemble from command prompt using `sbt`: +Once you have [Java JDK] and [SBT] installed, you can compile and run ScalaFX Ensemble from command prompt using `sbt`: 1. Open command prompt 2. Change directory to where you saved the ScalaFX Ensemble source code (directory containing this README file). @@ -53,9 +47,26 @@ and [SBT](http://www.scala-sbt.org/) installed, you can compile and run ScalaFX When run the very first time, SBT will download all needed dependencies including Scala and ScalaFX. +### Saving and Building Individual Examples + +ScalaFX Ensemble Application gives you ability to save each example as a separate SBT project. You can then build and run that example. + +To save an example as a stand-alone SBT project: + +1. Start ScalaFX Ensemble Application +2. Select an an example from the panel on the left. For instance "Charts" > "Adv Candle Stick Chart" +3. Select on "Source" tab above the example +4. Select "Save SBT Project..." then select **empty** directory where to save the project + +To run the saved example, assuming that you have [SBT] and JDK installed: + +1. From a command line prompt navigate to the directory you saved the example +2. At command line type: `sbt run`. This will download necessary dependencies, build, and run the example. + + ### Compile and Run using Intellij IDEA ### -[IntelliJ IDEA](http://www.jetbrains.com/idea/) with Scala plugin can import project settings from an SBT configuration. +[IntelliJ IDEA] with Scala plugin can import project settings from an SBT configuration. Simply select `File > Import Project...` and point to location of the ScalaFX Ensemble `build.sbt`. Ensemble requires some resources to be generated from the sources to run. @@ -65,24 +76,39 @@ To best way to run it is be defining an SBT task in Run Configuration: 3. Give it a name "Ensemble" 3. In "Task" field type "run" and click OK +Stand-Alone Application +----------------------- + +Installer for stand-alone version of ScalaFX Ensemble Application are available for Windows, Mac OS, and Linux from the [Releases] page. + +![Install4J](https://www.ej-technologies.com/images/product_banners/install4j_medium.png) + +Installers are created using [Install4J] and the [sbt-install4j] plugin. + +Building Installers +------------------- +To build an installer you need to have [Install4J] installed. + +Use SBT task `install4j -m _os_`, for instance to create Windows installer: -Project Status --------------- +``` +sbt> install4j -m windows +``` -This project is in a "stable" pre-release state, the main missing future planned for the first release is support -for building native executables. +Note that due to native dependencies in JavaFX distribution you have to build installer on a destination OS. Current SBT setup does not allow for cross-building on different OS. It is technically possible but not currently implemented in this project. +For more information about `install4j` see [sbt-install4j]. Mailing list ------------ To post questions or send feedback about ScalaFX Ensemble or ScalaFX in general, please use ScalaFX discussion groups: -* [scalafx-user](https://groups.google.com/forum/?fromgroups#!forum/scalafx-users) - for users of ScalaFX +* [scalafx-user] - for users of ScalaFX -* [scalafx-dev](https://groups.google.com/forum/?fromgroups#!forum/scalafx-dev) - for ScalaFX contributors/committers +* [scalafx-dev] - for ScalaFX contributors/committers -* [ScalaFX](https://stackoverflow.com/questions/tagged/scalafx) on StackOverflow +* [ScalaFX on StackOverflow](https://stackoverflow.com/questions/tagged/scalafx) License @@ -113,3 +139,18 @@ AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +[Apache2]: https://www.apache.org/licenses/LICENSE-2.0.html +[Eclipse]: http://www.eclipse.org/ +[Install4J]: https://www.ej-technologies.com/products/install4j/overview.html +[IntelliJ IDEA]: http://www.jetbrains.com/idea/ +[Java JDK]: http://www.oracle.com/technetwork/java/javase/downloads/index.html +[JavaFX Ensemble]: http://www.oracle.com/technetwork/java/javafx/samples/index.html +[sbt-install4j]: https://github.com/jpsacha/sbt-install4j +[sbteclipse]: https://github.com/sbt/sbteclipse +[SBT]: http://www.scala-sbt.org/ + +[ScalaFX]: http://scalafx.org +[scalafx-dev]: https://groups.google.com/forum/?fromgroups#!forum/scalafx-dev +[scalafx-user]: https://groups.google.com/forum/?fromgroups#!forum/scalafx-users +[ScalaFX Ensemble Home Page]: http://scalafx.github.com/scalafx-ensemble/ +[Releases]: https://github.com/scalafx/scalafx-ensemble/releases \ No newline at end of file diff --git a/install4j.sbt b/install4j.sbt new file mode 100644 index 0000000..0dd9111 --- /dev/null +++ b/install4j.sbt @@ -0,0 +1,11 @@ +// +// Install4J Setup +// + +exportJars := true + +enablePlugins(SBTInstall4J) +//install4jcFile := file("C:/Program Files/install4j8/bin/install4jc.exe") +install4jProjectFile := "installer/ScalaFX_Ensemble.install4j" +install4jRelease := version.value +//install4jVerbose := true diff --git a/installer/ScalaFX_Ensemble.install4j b/installer/ScalaFX_Ensemble.install4j new file mode 100644 index 0000000..5bda661 --- /dev/null +++ b/installer/ScalaFX_Ensemble.install4j @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sys.installationDir + + + context.getBooleanVariable("sys.confirmedUpdateInstallation") + + + + + + ${form:welcomeMessage} + + !context.isConsole() + + + + + + String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName()); +return console.askOkCancel(message, true); + + + + + + + + updateCheck + + + + + ${i18n:ClickNext} + + + + + + !context.getBooleanVariable("sys.confirmedUpdateInstallation") + + + + + sys.installationDir + + + context.getVariable("sys.responseFile") == null + + + + + + ${i18n:SelectDirLabel(${compiler:sys.fullName})} + + + + + + + + suggestAppDir + validateApplicationId + existingDirWarning + checkWritable + manualEntryAllowed + checkFreeSpace + showRequiredDiskSpace + showFreeDiskSpace + allowSpacesOnUnix + validationScript + standardValidation + + + + + + + + + ${i18n:SelectComponentsLabel2} + + !context.isConsole() + + + + + + + selectionChangedScript + + + + + + + + + + ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} + + !context.getBooleanVariable("sys.programGroupDisabled") + + + + ${compiler:sys.fullName} ${compiler:sys.version} + + + + + + + ${i18n:WizardPreparing} + + + + + + + + + ${form:finishedMessage} + + + + + + + + + ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} + + + + + + + + + + + + + + + + ${form:welcomeMessage} + + !context.isConsole() + + + + + + String message = context.getMessage("ConfirmUninstall", context.getApplicationName()); +return console.askYesNo(message, true); + + + + + + + + + + + + + + + ${i18n:UninstallerPreparing} + + + + + + + + + + ${form:successMessage} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/icons/SFX-128.png b/installer/icons/SFX-128.png new file mode 100644 index 0000000000000000000000000000000000000000..31fb5f2cb990ab9d2fc7f552b166ee06e2c0ca4f GIT binary patch literal 5099 zcmV2}?A z)O`>oaU~%MfxLtyBroiIx97Z`cXIDN=iGM_ zlHB{7x$|D&y?f66zTf%IcfRwT??on0o(vyR0$>V&%K=;h;41*C0h9ws_}NeZ&;g(s zz!v}x0{8=f9RS`3(COFX7x{3HVgNS+_$GTj%ZGc0_!C9~_zOuEZ2&d^_%(oy0J;j1 zRUsCj48Rfq-v@9`sIW7FdH^c{tOC&Dr2|n9-yy4UAAkb@eiADGjDlqUPfQp0d9moG z1fcnSCxCxr^LmJZfpVsk_nD4-CqRUm`mF#i3za@#F_G!$`%Gs_=n#OMyk7!X0U#bc znGQO{nXZ1xbms~c0a5^d2jKRgOLY+9cBZ?OTi4wPKx_Kf0n81$BnL4_ck7uhZQ(=! znm^V6_*&2C)CGa3a7x0RArMk{d!GUH-uCaqI{{VceeuU1CEJKL&7x{8%yp zD3I_Aw>cxkpatpn1vywG6W|`UmJBg8F_Gyw2XQZ;jO{v|9V&lF<2Zox`QCwO0TzeK z4+PF;n|KyD0ZQ0rLWp4CKJMpn0?ZG0^#X+|0DldE01JXHkpSX0FaprB;QF9TBY>Dq zx+elm0#F)sX#^0Y^GQU2X+f7nfH92-Fh1x~2r$MI0Y(R13IWFGD9hUq5lmDQ0fvRj z4=jce0g^$NLV%IviYOoj7>#AU^rz6GS3f6;3dzqXT6m zN7aul>2yKuo3!WF799<1AYFOsL}g_q7A#nRS+izgJzAgLUs{U0 z$BfC7qtI5PCksG|zvGTOFn8`;B$NK96VN@oySovMMst^mfcgVH*=(+l)VJS`9ErdG z;~%wKzW(@etQ|Hi_k1uQ!ORmUwA)!%S=mdLB8+{2Y15`*?b@}t`R1GZMEL}o0#2Pe zg|4nHWV2cH^z_)8IQqAy_?f9&m6iJU>#{O57wM0uIY*AY;G z$x)Q05dju0T7*@rR@u($exkm<9-W#F=Sh?+HENXg?>lzvKuJl7^*z~Z^@7i%QLKu`t@}~T;G%3+ z>n;;)K1Wp-NA~pOJ(D=HNZ3EEtieQ*Z&hmQ{I{GPOvc9<3QMh(+T6GZU9!1g;mEW8COoIQ{bI--oLa@sX z+zRl~YKLzfIikEzZ8VDI$z-k%qmbk3 zoLo9fOuNsBj-OpWISFb?OEE)pDp=Iig!QGRc~;=NhYq=ZhfM#S>2&Vdxbjt|Ki5xX zuQYM@-FNpAu)GAZyF{OXf6vLZ76RE(?jV_d*q_})jQCQ<1@Z^q8CtjmqNbRUVANu4I73JKKLL{IECW;Q>QTF*fHf@o=c_jqGL{x zvAzVgcQ_Wqh-?-YcXW7aX?HA!C8<>2lAB*1p6jI20?^G?uU?&(!{-H*Gq_~Q5^USH z4a=4-vo?c*Vin}6;9n{#@M*E~2fccMy#4#xyf2P?-6fxG-&8q)q$Ki4$pVl$_bUsC zHjXxK+=v%mc)?m}c=7m&JlAA0SoZ0s%FjMR=~p!R6A8phN)V+Og)mo^X0y1Uz1{Kq zE32xk*FvmD58I!o9Drf%?RfRzLCfjW0j>AHlTKro5NVCa{ImQ>Q8W zW%~5#Rz{GYsbJ(^5D8v=^;P2~qzM5E#r2n6=D4S>3m)y{@_eYi9yckRJrPS&Df}jp z$eH{EdtX4vyiv3f-sui4Vt3r5lLpgDWaoH=;<>8E|Q2Irl3o<#!D5)2d)h*`>o z_G|fPpCRFqM6_x2xItRD3ffbE7}er)(25l+FmvWiyz#Y(qGalGLh!|FAZhvj{issJ_YX&-7@?s|%5ALZ z>A}`y($nc8hLfJo28szB#6Z5bB}Q^q((7%v-DYhQQ@(%~P@LfY`|o#L>Xuy>C^Lz)Bm^+#NTNS%|KTIa^UQrP?wzgUhp9++IzIfCq>`$d~u>jLJ zfTw%_c{-);{Qdg%>#Y#*z4zYhY1Kf%Cwckh6?T0V!>D3Z&F(VUVwIs|`pH63 z;wnY^Uei47L_wsbM~>tMo);MzO#w2T_VMLJkdHq4$nx&#{iI2gEP?8P($RM9+GQOX zciMy3odS*&6`@vAv|R#-nCmCzH}cQRn=U#~nSR3JbQ<+cZrhVd+|=2LG7V+YzQXb1 zV*G)ko90VH^tJywhmKK<5QSXQz;U^8RsCZg&ys_$$BY zZys{xX>PjE@%pzF6C?Qao1gU zY2UZHx;pn@1x*9OGFI%DeA)fGI8B(0GF`8KWg?L`fT+z)rKQ#>BOTCGa8F~Sr&WRP zC1T{AFEMVwiLhnM7At8)7ozeDA%L6{Xg39@d;k*@d)MK^%771z{$0Y9Bl;!JYo?JA zW@j?EE|W3#1^TQ;keq}mk33r9=|U!e_;42*?5jKZEV`G812`{}(K^Z{kA9JeJ5wpV zYjE25dkqc7R-n&|M9EP^KB7#PP;RG$)0*e}U~{0euYyaI-TM#w_9;KdN55z-WoPu? z**3He=q%zt9y?~VY1MC4!ek=o5}<|U)7zcWDFl5PS-hjJPAk^`2J_tIRC>{u+Mh@m zS%I6In^E4`nInM;{az-H6M=$6I^Y$=1`DWq*R`4lIbUZ4a5@XYNnm0Htk}TOquNt} z76G1l<{8|2>#eS5`c3fYqmNqg02OGtNcD&yggE;3=MHAc_~D1G;tez^>2>ekz1lVXX#1FU4yR0+ zqFro)P8&mV-g;pG5YHLfJy#)C;M+}2*l^ZaIN@?mPwY0pbK&czsr_|P7a}~L}@?2uWJIzAmz`WKi}E_vRfX>f=U_00s0EM zjvwJag}{%>{By`wzyvpBG8iG$Gc+OqZRPeSs5lf?z8n~Fio}g_@I7RV>?5N5ZF94h z;|F%CXO~S09UaRiT7f+pMLRf>(z4K~QfMI#oCzq6j7e@LEGxj1cZ^EKnjQ?*1+DRE#FOI3j2UC4lG$yD6q1OM zhdx*?QsG9E3gNHE2%sS&5JUET3cJOZ{I%a#PLfny_DzGi#v37yKr^{pgz(=QOb5lM~8LU)feVM z=cj4tlIsL{0Y5cGZPK{`e%U!(5uvaY&zhpk^f)&^s>j>vV8tYyGKA%4r#6N1J$mKh zDeyx-=HPTXX5qqxw%?;eBnJcsNsQ+4#0oiwK(246vkNDhM_y&jPWXkMqEUgj115O6 zkMb6@r^B4WehMjFEU4*J%gD~p;Ki<#1mIuhXe7bFnx&!5?@Bu!K*Rp+%2Vs;alPTbB2a2Xo~f7a`+2`cKc99?Jo!S~=ilW-GRbX_+gJJk@)ztf zYV10|oeZ~o$?v_wPo z(!y!~_;CP}soqi0B|QMKjp^obll%@Z=K}Tsm;vB#D5GRBOKgbXeWr^UOgBdGdN736 zlm7)^3jJCM+gfZ5x+eM&B6wzy5Ci=# z&PSBO#bmu1K${o(1=UjG`hh#7YDV+)slQTz`|9P7L{vX{Z$bFG#b5;NV N002ovPDHLkV1kBdxO@Nr literal 0 HcmV?d00001 diff --git a/installer/icons/SFX-16.png b/installer/icons/SFX-16.png new file mode 100644 index 0000000000000000000000000000000000000000..7f92a604ef35a07383c57151829f099a74ba063c GIT binary patch literal 484 zcmVj9u4gz!qGlHYE(eW_Zl<_jVG6X=d3 zP4j;SgX(?Cw*6u_tmbA$Mp`mNlF201YL$FG{{UY!P4>fK&U76w5MXs@hlP5biB5-& zNQA>s=th=6qtU=|98#$iuIqLIgRK_huB*&Pp^!3txVWIM>wJ&?i%tR3=`@u}g?Kzp zHk<7NhC3Zb&(ATguhsXM=c(t=)fMmW<`lrPEHar4g+c+-G)W{9>gTV40TykWEyG~? z_!#^0k}sCUTi<7Sdt0pu#A30&TrSt$RhCmOm-&1z3%T1|v&m*K$nQvmKh35p<>Tq8 zF0ZoZI8MJ|7~&~#t7GK2lsx`90jSm^=qRhA&Tss${`qkm>QAEIZ literal 0 HcmV?d00001 diff --git a/installer/icons/SFX-256.png b/installer/icons/SFX-256.png new file mode 100644 index 0000000000000000000000000000000000000000..9767819a55eaa5a8d56eda93e0df502bf2a26403 GIT binary patch literal 10598 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 G9P~f$AednQ literal 0 HcmV?d00001 diff --git a/installer/icons/SFX-32.png b/installer/icons/SFX-32.png new file mode 100644 index 0000000000000000000000000000000000000000..1bebd3cf70d6a9e795c15607bdf7f6f26641e05e GIT binary patch literal 1280 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 Wv4)i8+!nI{0000USERn53mMBUoYebSg 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 Mw2U>2;f`Vd2aPkyK>z>% diff --git a/src/deploy/package/macosx/ScalaFX-icon-64x64.icns b/src/deploy/package/macosx/ScalaFX-icon-64x64.icns deleted file mode 100644 index 1d8c33a6ca9bd71a1ac632d29e4ac851b2136156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4016 zcmV;h4^QxkP)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00006 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 diff --git a/src/main/resources/scalafx/ensemble/sbt/build.sbt b/src/main/resources/scalafx/ensemble/sbt/build.sbt index 3399843..686d09f 100644 --- a/src/main/resources/scalafx/ensemble/sbt/build.sbt +++ b/src/main/resources/scalafx/ensemble/sbt/build.sbt @@ -1,10 +1,10 @@ name := "@name@" -version := "1.11" +version := "1.14" -scalaVersion := "2.12.7" +scalaVersion := "2.13.1" -libraryDependencies += "org.scalafx" %% "scalafx" % "11-R16" +libraryDependencies += "org.scalafx" %% "scalafx" % "12.0.2-R18" // Determine OS version of JavaFX binaries lazy val osName = System.getProperty("os.name") match { @@ -17,7 +17,7 @@ lazy val osName = System.getProperty("os.name") match { // Add JavaFX dependencies lazy val javaFXModules = Seq("base", "controls", "fxml", "graphics", "media", "swing", "web") libraryDependencies ++= javaFXModules.map(m => - "org.openjfx" % s"javafx-$m" % "11" classifier osName + "org.openjfx" % s"javafx-$m" % "12.0.2" classifier osName ) scalacOptions ++= Seq("-unchecked", "-deprecation") diff --git a/src/main/resources/scalafx/ensemble/sbt/project/build.properties b/src/main/resources/scalafx/ensemble/sbt/project/build.properties index f42d44e..46ed054 100644 --- a/src/main/resources/scalafx/ensemble/sbt/project/build.properties +++ b/src/main/resources/scalafx/ensemble/sbt/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.2.4 +sbt.version=1.3.3 diff --git a/src/universal/conf/jvmopts b/src/universal/conf/jvmopts deleted file mode 100644 index 75bc171..0000000 --- a/src/universal/conf/jvmopts +++ /dev/null @@ -1,4 +0,0 @@ --Xms512m --Xmx1024m --XX:ReservedCodeCacheSize=128m --DjvmoptsPropertyExample=myProperty