Commit Graph

79 Commits

Author SHA1 Message Date
Svyatoslav Scherbina 04d01e381f Native: disable running cinterop in Gradle process when building K/N
Building Kotlin/Native itself involves running cinterop in the Gradle
daemon process to reduce build time.
But this optimization appears to be incorrect when reusing Gradle daemon
for subsequent builds.

This commit disables the optimization by default, keeping enabling it
possible using `kotlin.native.allowRunningCinteropInProcess=true`
project property.

For more details see ^KT-61300
2023-08-21 14:15:28 +00:00
Yahor Berdnikau 380062c511 [repo] Update the shadow version to 8.1.1 release
https://github.com/johnrengelman/shadow/releases/tag/8.1.1
2023-08-09 08:36:46 +00:00
Dmitrii Krasnov f2816a5531 Added property for overriding konan distribution location
#KT-50463 Fixed

Merge-request: KT-MR-10310
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2023-07-12 12:36:51 +00:00
cristiangarcia 0946039661 Reduce number of tasks realized eagerly from Konan Plugin 2023-07-10 14:42:30 +00:00
Alexander.Likhachev 862f8f235c [Build] Bump Gradle version to 8.1.1
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
cristiangarcia 46d113605b Adopt configuration-avoidance where possible
Before this change `./gradlew help` (with native enabled)
Created immediately: 1322
Created during configuration: 1541

after this change:
Created immediately: 596
Created during configuration: 1509

To know more about configuration avoidance: https://docs.gradle.org/current/userguide/task_configuration_avoidance.html
2023-06-06 14:27:42 +00:00
Vladimir Sukharev 37adc99b9a [K/N] Don't pass -language_version to the second stage of new test system.
^KT-56182
Merge-request: KT-MR-10414
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-06-05 17:59:16 +00:00
Dmitriy Dolovov 468d524a74 [PL][tests] Run K/N tests (old infra) with PL enabled 2023-04-08 20:46:38 +00:00
Pavel Punegov c49128aa99 [K/N][perf] Performance project build
* Add build-tools plugin
* Cleanup code
* Add missing methods after the move
2023-02-27 10:48:27 +00:00
Pavel Punegov 8938d5cc79 [K/N][build] Make kotlin-native shared be included subproject 2023-02-27 10:48:26 +00:00
Pavel Punegov 395e3e0f81 [K/N][build] Composite build with build.tools-conventions plugin
Adds convention plugin instead of sources inclusion
inside the buildSrc, effectively reducing the amount
of the code to be compiled in buildSrc.

Merge-request: KT-MR-8898
2023-02-27 10:48:26 +00:00
Pavel Punegov cc258934c4 [K/N][build] Cleanup obsolete build tasks
* Remove obsolete reporting
* Remove old build tasks: BuildPusher and CollisionDetector
* Gradle build file cleanup
* Remove old wrappers

Merge-request: KT-MR-8788
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
(cherry picked from commit a9cae3fe87)
2023-02-16 11:56:34 +00:00
Nikolay Krasko 2ad567e14c Revert "[K/N][build] Cleanup obsolete build tasks"
This reverts commit a9cae3fe87.
2023-02-14 11:30:17 +00:00
Pavel Punegov a9cae3fe87 [K/N][build] Cleanup obsolete build tasks
* Remove obsolete reporting
* Remove old build tasks: BuildPusher and CollisionDetector
* Gradle build file cleanup
* Remove old wrappers

Merge-request: KT-MR-8788
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-02-13 14:02:28 +00:00
Pavel Punegov c9aeadd31f [K/N] Remove old Compiler and Meta Version ^KT-55677 Fixed
* Replace it with KotlinCompilerVersion
* K/N version should be set now with `deployVersion`.
* Cleanup deprecated functions in older versions
 of the Gradle plugin
* Cleanup tests for older versions of compiler downloader

Merge-request: KT-MR-8436
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-01-30 13:10:08 +00:00
Vladimir Sukharev 574d78efce [K/N] Remove remains of jcenter from kotlin-native/
Revert two special entries

Use proper mavenCentral()

Remove remains of jcenter from kotlin-native/

Merge-request: KT-MR-7610
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-11-09 13:23:09 +00:00
Vladimir Sukharev 44f638e952 Drop K/N dependency to JCenter 2022-11-03 10:51:56 +00:00
Nikolay Krasko 1630386712 Move to JDK_X_Y variables 2022-09-21 22:53:19 +00:00
Igor Chevdar 228141aeea [K/N][build] Supported per-file caches in K/N tests 2022-08-06 17:40:25 +00:00
Anton Lakotka 2f5ae70cef [Gradle] Fix kotlin-native-gradle-plugin to be compatible with KonanToolRunner
KonanToolRunner was changed to be compatible with
Gradle Configuration Cache.
2022-08-05 04:25:00 +00:00
Vyacheslav Gerasimov 7157a54155 Fix unnecessary usages of Locale.getDefault() 2022-05-06 22:08:25 +00:00
Vyacheslav Gerasimov dcd17e41a4 Fix capitalization related deprecation warnings 2022-05-04 19:15:01 +00:00
Svyatoslav Scherbina 63a396b51d Native: fix classpath in KonanCliRunner
It included "konan/lib/*.jar", which became incorrect after adding
kotlin-native-compiler-embeddable.jar to K/N dist in 2baf344f5f:
after that, the classpath included both kotlin-native.jar and
kotlin-native-compiler-embeddable.jar, so it contained duplicating
classes.

Fix this by choosing particular .jar files from konan/lib, and use
kotlin-native-compiler-embeddable.jar.
2022-03-09 11:09:25 +00:00
Svyatoslav Scherbina 7470aaf06c Native build: don't read klib files in KonanCacheTask.cacheFile
It is `@OutputDirectory`, so Gradle can invoke it early, even before the
klib itself is built.

Instead of reading `uniqName` from klib files, require specifying it
explicitly.
2022-03-06 12:16:17 +00:00
Nikolay Krasko a2cef5c930 Update shadow plugin to 7.1.2
^KTI-728 Fixed
2022-02-22 21:43:27 +03:00
Igor Chevdar f724b5c29d [K/N][gradle][interop] Workaround for loading readonly native libs 2022-01-14 10:29:12 +05:00
Igor Chevdar 7a4ef76527 [K/N][gradle] Automatic cleaning of the class loaders map 2022-01-14 10:29:11 +05:00
Igor Chevdar bd6ea71ead [K/N][gradle][interop] Refactored ToolConfig
Added possibility to create different strategies for loading libclang
2022-01-14 10:29:10 +05:00
Igor Chevdar 0211509795 [K/N][build] Refactored K/N tool runner 2022-01-14 10:29:07 +05:00
Nikolay Krasko 85521f01f8 Update shadow plugin 6.1.0 -> 7.1.1
Version 7.1.1 is absent in jcenter, so additional repository was added
in some modules.

Leave old version in NewMultiplatformIT.kt because of
`This version of Shadow supports Gradle 7.0+ only. Please upgrade.` error.

^KTI-733 Fixed
2021-12-20 21:39:00 +03:00
Vyacheslav Gerasimov bc2f0936bd Build: Rename commonDep -> commonDependency 2021-12-16 21:48:19 +03:00
Igor Chevdar fed76a87af Revert "[K/N][build] Refactored K/N tool runner"
This reverts commit fa587a61fd.
2021-11-26 14:04:06 +05:00
Igor Chevdar 4b53a8e3c7 Revert "[K/N][gradle][interop] Refactored ToolConfig"
This reverts commit d9c1b1f6f7.
2021-11-26 14:01:40 +05:00
Igor Chevdar 031d92e21f Revert "[K/N][gradle] Automatic cleaning of the class loaders map"
This reverts commit 874b442a13.
2021-11-26 14:00:30 +05:00
Igor Chevdar 874b442a13 [K/N][gradle] Automatic cleaning of the class loaders map 2021-11-25 23:42:10 +05:00
Igor Chevdar d9c1b1f6f7 [K/N][gradle][interop] Refactored ToolConfig
Added possibility to create different strategies for loading libclang
2021-11-25 23:42:10 +05:00
Igor Chevdar fa587a61fd [K/N][build] Refactored K/N tool runner 2021-11-25 23:42:09 +05:00
Nikolay Krasko af8faadca5 Update internal project junit dependency 4.12 -> 4.13.2 2021-11-24 19:35:31 +03:00
Pavel Punegov c5a02902a7 [K/N][build] Add artifacts depending on input in library task
Depending on noPack option compiler produces file or directory.
Artifact field that contains .klib file can't use @OutputDirectory
annotation. The same applies for @OutputFile with directory.
To workaround make an artifact field internal and use two optional
fields that return either file or directory depending on noPack option.
2021-11-19 11:29:53 +00:00
Pavel Punegov e3ac2b661a [K/N][build] Remove artifact overriding in library task
Depending on noPack option compiler produces file or directory.
Artifact field that contains .klib file can't use @OutputDirectory
annotation. The same applies for @OutputFile with directory.
2021-11-19 11:29:53 +00:00
Pavel Punegov cc7768e38f [K/N] Konan: override artifact property to use with OutputDirectory 2021-11-19 11:29:52 +00:00
Pavel Punegov f7e2572ccc [K/N][build] Add noPack option to Konan plugin
Make plugin aware of -nopack compiler option to correctly set outputs
without .klib suffix.
2021-11-19 11:29:52 +00:00
Pavel Punegov 83d31526cc [K/N][build] Fix args in klib runner task 2021-11-11 12:16:27 +00:00
Pavel Punegov 197d55e045 [K/N][build] Add common sources setting to Konan plugin
Used for stdlib build
2021-11-11 12:16:26 +00:00
Pavel Punegov e07fa31784 [K/N][build] Move KLibInstall to Konan gradle plugin 2021-11-11 12:16:26 +00:00
Pavel Punegov e9b1f7cca1 [K/N][build] Move stdlib build to runtime project
Build stdlib with konan plugin in runtime project
2021-11-11 12:16:21 +00:00
Ilya Matveev 8ff1d66ec9 [K/N][build] Fix up-do-date checks for cache tasks
A name of a cache directory produced by the compiler for a library is
based on the unique name of this library. The cache task, when
declaring its outputs, assumes that this unique name is equal to the
name of the library file/directory. If this is not the case, the
up-to-date check works inconsistently and Gradle doesn't rerun
the task.

This patch fixes this issue by obtaining the real unique name of
the library.
2021-11-08 11:51:42 +07:00
Pavel Punegov 56d34bfd53 [K/N][build] KonanCacheTask: get rid of lateinit in input directory 2021-10-22 09:29:22 +00:00
Pavel Punegov a003d804d2 [K/N][build] Use Map for cached libraries 2021-10-22 09:29:21 +00:00
Pavel Punegov 567dac0719 [K/N][build] Small fixes to KonanCacheTask 2021-10-22 09:29:21 +00:00