Changes On Branch wip-gradlebump

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch wip-gradlebump Excluding Merge-Ins

This is equivalent to a diff from 1e3755e947 to a015cd5176

2024-02-24
21:45
Merge in Gradle version bump and CircleCI Windows fixes. check-in: 43339e6d71 user: stephanie.gawroriski tags: trunk
21:01
Correct JAVA_HOME for Windows? Closed-Leaf check-in: a015cd5176 user: stephanie.gawroriski tags: wip-gradlebump
20:26
Use curl instead. check-in: 0881b86c03 user: stephanie.gawroriski tags: wip-gradlebump
17:58
Bump Gradle version; Increase CircleCI resource class. check-in: 511fd5b1e0 user: stephanie.gawroriski tags: wip-gradlebump
2024-02-20
18:10
Correct libretro license for NanoCoat. check-in: 1e3755e947 user: stephanie.gawroriski tags: trunk
13:44
Add width to kateconfig. check-in: 5be2748679 user: stephanie.gawroriski tags: trunk

Changes to .circleci/config.yml.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

executors:
  build-on-linux-amd64:
    docker:
      # As of 2023/07/19 it appears .19 is broken since 2023/04/19, so use
      # older .18 here
      - image: cimg/openjdk:11.0.18
    resource_class: medium
    environment:
      # Allow Gradle to be fully cached
      GRADLE_USER_HOME: ${CIRCLE_WORKING_DIRECTORY}/.gradle/home
  build-on-linux-arm64:
    docker:
      - image: cimg/ubuntu-2004:current
    resource_class: arm.medium







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

executors:
  build-on-linux-amd64:
    docker:
      # As of 2023/07/19 it appears .19 is broken since 2023/04/19, so use
      # older .18 here
      - image: cimg/openjdk:11.0.18
    resource_class: large
    environment:
      # Allow Gradle to be fully cached
      GRADLE_USER_HOME: ${CIRCLE_WORKING_DIRECTORY}/.gradle/home
  build-on-linux-arm64:
    docker:
      - image: cimg/ubuntu-2004:current
    resource_class: arm.medium
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
      HOMEBREW_NO_INSTALL_CLEANUP: 1

  build-on-macos-m1:
    machine: true
    resource_class: squirreljme/squirreljme-macos-m1

orbs:
  win: circleci/windows@2.4.0

# Parameters to simplify commands
parameters:
  # Options to be used for any Gradle command, is faster this way
  standard-gradle-options:
    type: string
    default: --console plain --continue --parallel --no-daemon --stacktrace







|







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
      HOMEBREW_NO_INSTALL_CLEANUP: 1

  build-on-macos-m1:
    machine: true
    resource_class: squirreljme/squirreljme-macos-m1

orbs:
  win: circleci/windows@5.0

# Parameters to simplify commands
parameters:
  # Options to be used for any Gradle command, is faster this way
  standard-gradle-options:
    type: string
    default: --console plain --continue --parallel --no-daemon --stacktrace
150
151
152
153
154
155
156

























157
158
159
160
161
162
163
164
165



166
167






168
169
170
171
172
173
174
          command: sudo apt-get update -y
      - run:
          name: Install required dependencies
          command: sudo apt-get install -y --no-install-recommends cmake build-essential curl wget openjdk-11-jdk gcc g++ make

jobs:
  ################################## WINDOWS #################################

























  build_windows:
    executor:
      name: win/default
      shell: cmd.exe
      size: medium
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g



    steps:
      - checkout






      - run:
          shell: cmd.exe
          name: Gradle Build and Test
          # According to documentation, Gradle on Windows has trouble and tries
          # to make way too many workers which causes extreme resource.
          # contention --max-workers=2
          command: gradlew <<pipeline.parameters.standard-build-options>> <<pipeline.parameters.standard-gradle-options>>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




|




>
>
>


>
>
>
>
>
>







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
          command: sudo apt-get update -y
      - run:
          name: Install required dependencies
          command: sudo apt-get install -y --no-install-recommends cmake build-essential curl wget openjdk-11-jdk gcc g++ make

jobs:
  ################################## WINDOWS #################################
  build_windows_setup:
    executor:
      name: win/default
      shell: cmd.exe
      size: large
    environment:
      # Use older JDK for CircleCI
      JAVA_HOME: c:/users/circleci/project/jdk-11.0.22/
    steps:
      - run:
          shell: bash.exe
          name: Download Older JDK
          command: curl -o /c/users/circleci/jdk.zip https://download.bell-sw.com/java/11.0.22+12/bellsoft-jdk11.0.22+12-windows-amd64.zip
      - run:
          shell: bash.exe
          name: Extract Older JDK
          command: unzip /c/users/circleci/jdk.zip
      - run:
          shell: cmd.exe
          name: Java Version
          command: java -version
      - persist_to_workspace:
          root: .
          paths:
            - 'jdk-11.0.22/'
  build_windows:
    executor:
      name: win/default
      shell: cmd.exe
      size: large
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g

      # Use older JDK for CircleCI
      JAVA_HOME: c:/users/circleci/project/jdk-11.0.22/
    steps:
      - checkout
      - attach_workspace:
          at: .
      - run:
          shell: cmd.exe
          name: Java Version
          command: java -version
      - run:
          shell: cmd.exe
          name: Gradle Build and Test
          # According to documentation, Gradle on Windows has trouble and tries
          # to make way too many workers which causes extreme resource.
          # contention --max-workers=2
          command: gradlew <<pipeline.parameters.standard-build-options>> <<pipeline.parameters.standard-gradle-options>>
191
192
193
194
195
196
197
198
199
200
201
202



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
          home: "/c/users/circleci/"
          store-home: "c:/users/circleci/"

  build_windows_standalone:
    executor:
      name: win/default
      shell: cmd.exe
      size: medium
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g



    steps:
      - checkout
      - attach_workspace:
          at: .
      - run:
          shell: bash.exe
          name: Construct Standalone
          command: ./gradlew :emulators:standalone:shadowJar <<pipeline.parameters.standard-gradle-options >>
      - run:
          shell: bash.exe
          name: Remove distracting JAR, if any
          command: rm emulators/standalone/build/libs/standalone-*.jar
      - store_artifacts:
          path: emulators/standalone/build/libs/
          destination: .

  ratufacoat_build_windows:
    executor:
      name: win/default
      shell: cmd.exe
      size: medium
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g
    steps:
      - checkout
      - attach_workspace:







|




>
>
>




















|







225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
          home: "/c/users/circleci/"
          store-home: "c:/users/circleci/"

  build_windows_standalone:
    executor:
      name: win/default
      shell: cmd.exe
      size: large
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g

      # Use older JDK for CircleCI
      JAVA_HOME: c:/users/circleci/project/jdk-11.0.22/
    steps:
      - checkout
      - attach_workspace:
          at: .
      - run:
          shell: bash.exe
          name: Construct Standalone
          command: ./gradlew :emulators:standalone:shadowJar <<pipeline.parameters.standard-gradle-options >>
      - run:
          shell: bash.exe
          name: Remove distracting JAR, if any
          command: rm emulators/standalone/build/libs/standalone-*.jar
      - store_artifacts:
          path: emulators/standalone/build/libs/
          destination: .

  ratufacoat_build_windows:
    executor:
      name: win/default
      shell: cmd.exe
      size: large
    environment:
      # Use a reduced amount of memory to all the VMs so that it does not
      # try grabbing all the memory that is available to the system.
      JAVA_OPTS: -Xmx3g
    steps:
      - checkout
      - attach_workspace:
619
620
621
622
623
624
625

















626
627
628
629
630
631
632
#            - construct_libTestSummerCoat
      - build_linux_amd64_standalone:
           requires:
             - build_linux_amd64
#      - build_linux_arm64_standalone:
#          requires:
#            - build_linux_arm64


















      # Mac OS X runs decently however the jobs for it have a higher cost, so
      # only perform builds and tests for trunk to lower costs.
      # Currently I have an overabundance of credits...
      - build_macosx
#          filters:
#            branches:







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
#            - construct_libTestSummerCoat
      - build_linux_amd64_standalone:
           requires:
             - build_linux_amd64
#      - build_linux_arm64_standalone:
#          requires:
#            - build_linux_arm64

      # Building on Windows is currently expensive and takes longer, so only
      # run these builds on trunk to lower costs.
      # Currently, have an overabundance of credits...
      - build_windows_setup
      - build_windows:
          requires:
             - build_windows_setup
#          requires:
#            - build_linux
#          filters:
#            branches:
#              only:
#                - trunk
      - build_windows_standalone:
           requires:
             - build_windows

      # Mac OS X runs decently however the jobs for it have a higher cost, so
      # only perform builds and tests for trunk to lower costs.
      # Currently I have an overabundance of credits...
      - build_macosx
#          filters:
#            branches:
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
      - build_macosx_standalone:
           requires:
             - build_macosx
      - build_macosx_m1_standalone:
           requires:
             - build_macosx_m1

      # Building on Windows is currently expensive and takes longer, so only
      # run these builds on trunk to lower costs.
      # Currently have an overabundance of credits...
      - build_windows
#          requires:
#            - build_linux
#          filters:
#            branches:
#              only:
#                - trunk
      - build_windows_standalone:
           requires:
             - build_windows

      # Publishing to OSS Sonatype Nexus (https://oss.sonatype.org)
      - sonatype_publish:
          requires:
            - build_linux_amd64
          filters:
            branches:
              only:







<
<
<
<
<
<
<
<
<
<
<
<
<
<







694
695
696
697
698
699
700














701
702
703
704
705
706
707
      - build_macosx_standalone:
           requires:
             - build_macosx
      - build_macosx_m1_standalone:
           requires:
             - build_macosx_m1















      # Publishing to OSS Sonatype Nexus (https://oss.sonatype.org)
      - sonatype_publish:
          requires:
            - build_linux_amd64
          filters:
            branches:
              only:

Changes to .idea/gradle.xml.

1
2
3
4
5
6



7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>



        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="gradleJvm" value="liberica-11" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/buildSrc" />
            <option value="$PROJECT_DIR$/emulators" />






>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        <option name="delegatedBuild" value="true" />
        <option name="testRunner" value="GRADLE" />
        <option name="distributionType" value="DEFAULT_WRAPPED" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="gradleJvm" value="liberica-11" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/buildSrc" />
            <option value="$PROJECT_DIR$/emulators" />

Changes to buildSrc/src/main/java/cc/squirreljme/plugin/multivm/VMTestFrameworkTestClassProcessor.java.

26
27
28
29
30
31
32

33
34
35
36
37
38
39
import org.gradle.api.internal.tasks.testing.DefaultTestMethodDescriptor;
import org.gradle.api.internal.tasks.testing.DefaultTestSuiteDescriptor;
import org.gradle.api.internal.tasks.testing.TestClassProcessor;
import org.gradle.api.internal.tasks.testing.TestClassRunInfo;
import org.gradle.api.internal.tasks.testing.TestCompleteEvent;
import org.gradle.api.internal.tasks.testing.TestResultProcessor;
import org.gradle.api.internal.tasks.testing.TestStartEvent;

import org.gradle.api.tasks.testing.TestOutputEvent;
import org.gradle.api.tasks.testing.TestResult;
import org.gradle.internal.id.IdGenerator;

/**
 * Processor for test classes.
 *







>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import org.gradle.api.internal.tasks.testing.DefaultTestMethodDescriptor;
import org.gradle.api.internal.tasks.testing.DefaultTestSuiteDescriptor;
import org.gradle.api.internal.tasks.testing.TestClassProcessor;
import org.gradle.api.internal.tasks.testing.TestClassRunInfo;
import org.gradle.api.internal.tasks.testing.TestCompleteEvent;
import org.gradle.api.internal.tasks.testing.TestResultProcessor;
import org.gradle.api.internal.tasks.testing.TestStartEvent;
import org.gradle.api.tasks.testing.TestFailure;
import org.gradle.api.tasks.testing.TestOutputEvent;
import org.gradle.api.tasks.testing.TestResult;
import org.gradle.internal.id.IdGenerator;

/**
 * Processor for test classes.
 *
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
		// If failed, emit a throwable... if we do not do this then Gradle does
		// not care if a test failed and will just continue on happily like
		// nothing ever happened
		TestResult.ResultType finalResult = this._finalResult;
		if (finalResult == TestResult.ResultType.FAILURE)
			VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
				(__rp) -> __rp.failure(suiteDesc.getId(),
					VMTestFrameworkTestClassProcessor
						.messageThrow("Tests have failed.")));
		
		// Use the final result from all the test runs
		VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
			(__rp) -> __rp.completed(suiteDesc.getId(),
				new TestCompleteEvent(System.currentTimeMillis(),
					finalResult)));
	}







|
|







269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
		// If failed, emit a throwable... if we do not do this then Gradle does
		// not care if a test failed and will just continue on happily like
		// nothing ever happened
		TestResult.ResultType finalResult = this._finalResult;
		if (finalResult == TestResult.ResultType.FAILURE)
			VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
				(__rp) -> __rp.failure(suiteDesc.getId(),
					TestFailure.fromTestFrameworkFailure(VMTestFrameworkTestClassProcessor
						.messageThrow("Tests have failed."))));
		
		// Use the final result from all the test runs
		VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
			(__rp) -> __rp.completed(suiteDesc.getId(),
				new TestCompleteEvent(System.currentTimeMillis(),
					finalResult)));
	}
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
			
			// Failed to start?
			catch (IOException __e)
			{
				// Failed to start test
				VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
					(__rp) -> __rp.failure(__suiteDesc.getId(),
						new Throwable("Failed to start test.")));
				
				throw new RuntimeException(__e);
			}
			
			// Setup listening buffer threads
			VMTestOutputBuffer stdOut = new VMTestOutputBuffer(
				process.getInputStream(),







|







382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
			
			// Failed to start?
			catch (IOException __e)
			{
				// Failed to start test
				VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
					(__rp) -> __rp.failure(__suiteDesc.getId(),
						TestFailure.fromTestFrameworkFailure(new Throwable("Failed to start test."))));
				
				throw new RuntimeException(__e);
			}
			
			// Setup listening buffer threads
			VMTestOutputBuffer stdOut = new VMTestOutputBuffer(
				process.getInputStream(),
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
			}
			
			// If failed, emit a throwable...
			TestResult.ResultType finalResult = testResult;
			if (finalResult == TestResult.ResultType.FAILURE)
				VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
					(__rp) -> __rp.failure(methodDesc.getId(),
						VMTestFrameworkTestClassProcessor 
							.messageThrow("Test failed: " +
								__testName.normal)));
			
			// Mark method as completed
			VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
				(__rp) -> __rp.completed(methodDesc.getId(),
					new TestCompleteEvent(System.currentTimeMillis(),
						finalResult)));
		}







|

|







473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
			}
			
			// If failed, emit a throwable...
			TestResult.ResultType finalResult = testResult;
			if (finalResult == TestResult.ResultType.FAILURE)
				VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
					(__rp) -> __rp.failure(methodDesc.getId(),
						TestFailure.fromTestFrameworkFailure(VMTestFrameworkTestClassProcessor
							.messageThrow("Test failed: " +
								__testName.normal))));
			
			// Mark method as completed
			VMTestFrameworkTestClassProcessor.resultAction(resultProcessor,
				(__rp) -> __rp.completed(methodDesc.getId(),
					new TestCompleteEvent(System.currentTimeMillis(),
						finalResult)));
		}

Changes to gradle/wrapper/gradle-wrapper.properties.

1
2
3
4
5
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists


|


1
2
3
4
5
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists