Commit Graph

97983 Commits

Author SHA1 Message Date
Mark Mann 47f6cb663e Native: add flag that disables ObjC method name mangling for methods in different Kotlin Interfaces (#5070) 2023-01-20 21:27:44 +01:00
Anton Lakotka bbc2a9a1db [Gradle] Test that CInterop[MDT]Tasks outputs doesn't conflict
^KT-49933
2023-01-20 20:15:40 +00:00
Sebastian Sellmair d4a9bb8d90 [Gradle] CInteropMetadataDependencyTransformationTask: Fix overlapping outputLibrariesFileIndex
Before this change, IDE tasks from different projects
were re-using the same libraries index file, leading
to overwrites and therefore missing dependencies in the IDE

KT-49933
2023-01-20 20:15:40 +00:00
Sebastian Sellmair 6849804941 [Gradle] KotlinMetadataLibraryDirectories: Use composite build root for IDE directories
KT-49933
2023-01-20 20:15:39 +00:00
Anton Lakotka 61748f4016 [Gradle] Add mavenCentralCacheRedirector back to fix compilation error
^KT-49933
2023-01-20 20:15:39 +00:00
Sebastian Sellmair 3d8ee5bae5 [Gradle][Minor] ProjectMppDependencyProjectStructureMetadataExtractor: Remove unnecessary constructor
KT-49933
2023-01-20 20:15:39 +00:00
Anton Lakotka 00bcaebd15 [Gradle] Move collectAll[PSM]InCurrentBuild to
^KT-49933
2023-01-20 20:15:38 +00:00
Anton Lakotka cc98b7b4cd [Gradle] Delete failing KPM tests after Configuration Cache fixes
KPM is experimental and is not going to be supported before stable
release

^KT-49933
2023-01-20 20:15:38 +00:00
Anton Lakotka 3a02090ff3 [Gradle] Collect project structure metadata for current build separately
^KT-49933
2023-01-20 20:15:38 +00:00
Anton Lakotka 244f742610 [Gradle] Move MetadataDependencyTransformationTask configuration to task file
^KT-49933
2023-01-20 20:15:37 +00:00
Anton Lakotka afaa86291f [Gradle] Remove dependency to transform all dependencies metadata task
from `resolveIdeDependencies` task.

^KT-49933
2023-01-20 20:15:37 +00:00
Anton Lakotka 33a680c123 [Gradle] Re-use GlobalProjectStructureMetadataStorage to obrain all...
...Kotlin Project Structure Metadata to feed it for Metadata Dependency
Transformation process

^KT-49933
2023-01-20 20:15:37 +00:00
Sebastian Sellmair 321647b831 [Gradle] Restore KotlinMetadataTargetConfigurator.applyToConfiguration
... to avoid unnecessary :all: dependencies being imported
in 'old' import style (using deprecated DependenciesMetadata configurations)

KT-49933
2023-01-20 20:15:36 +00:00
Sebastian Sellmair a02279df7d [Gradle][Minor] Optimise imports on KotlinNativeCompilation
KT-49933
2023-01-20 20:15:36 +00:00
Sebastian Sellmair 55faa69a7d [Gradle][Minor] Optimise imports on ProjectMetadataProviderImpl
KT-49933
2023-01-20 20:15:36 +00:00
Anton Lakotka 5a396187ca [Gradle] Remove with prefix in hostSpecificMetadataConfigurationName
^KT-49933
2023-01-20 20:15:35 +00:00
Anton Lakotka d5936a52f0 [Gradle] Move hostSpecificMetadataConfiguration to configuration container
Previously it was declared on KotlinNativeCompilation with extra
NativeCompilationDependencyConfigurationsContainer interface. But it is
not necessary, and hostSpecificMetadataConfiguration can be placed
directly to KotlinCompilationConfigurationsContainer and guarded
and created on demand via `withHostSpecificMetadata` flag on a factory
method.

^KT-49933
2023-01-20 20:15:35 +00:00
Sebastian Sellmair e36338b091 [Gradle][Minor] CInteropMetadataDependencyTransformationTask: Demote visibility of internals
KT-49933
2023-01-20 20:15:35 +00:00
Sebastian Sellmair b31100a90c [Gradle][Minor] MetadataDependencyTransformationTask: Demote visibilty of internals
KT-49933
2023-01-20 20:15:34 +00:00
Sebastian Sellmair e0fde89262 [Gradle][Minor] Move evaluation of 'isResolvedToProject'
KT-49933
2023-01-20 20:15:34 +00:00
Sebastian Sellmair 02c039ce8f [Gradle][Minor] Increase discoverability of 'MppDependencyProjectStructureMetadataExtractorFactory'
KT-49933
2023-01-20 20:15:33 +00:00
Sebastian Sellmair 2cd797289a [Gradle][Minor] MetadataDependencyTransformationTask: Rename transformedLibrariesFileIndex
... to transformedLibrariesIndexFile

KT-49933
2023-01-20 20:15:33 +00:00
Sebastian Sellmair f62fb6399b [Gradle] Replace 'visibleSourceSetsFromParentsProvider' by ParentSourceSetVisibilityProvider interface
KT-49933
2023-01-20 20:15:33 +00:00
Sebastian Sellmair 66e426e9ee [Gradle] CInteropMetadataDependencyTransformationTask: Remove unused code and restore UP-TO-DATE behaviour
KT-49933
2023-01-20 20:15:32 +00:00
Sebastian Sellmair 755958f41c [Gradle] Share KotlinMetadataLibrariesIndexFile impl for cinterop and regular metadata transformation
KT-49933
2023-01-20 20:15:32 +00:00
Anton Lakotka 70046ffc20 [Gradle] Add CInteropMetadataTransformations only for SharedCommonizerTargets
^KT-49933
2023-01-20 20:15:32 +00:00
Anton Lakotka 040a2904d2 [Gradle] Mute KPM tests that are failing due to changes in...
Metadata Dependency Transformation infrastructure.

^KT-49933
2023-01-20 20:15:31 +00:00
Sebastian Sellmair bf078caef6 [Gradle][Minor] LazyResolvedConfiguration: Make allResolvedDependencies lazy member
KT-49933
2023-01-20 20:15:31 +00:00
Sebastian Sellmair e8f671e824 [Gradle][Minor] LazyResolvedConfigurationTest: Add assertion for allDependencies
... to match incoming.resolutionResult.allDependencies

KT-49933
2023-01-20 20:15:31 +00:00
Sebastian Sellmair dba20b9d1d [Gradle][Minor] KotlinNativeLink: Rename exportLibrariesResolvedGraph to exportLibrariesResolvedConfiguration
KT-49933
2023-01-20 20:15:30 +00:00
Sebastian Sellmair afec974df2 [Gradle][Minor] Format GranularMetadataTransformation.kt
KT-49933
2023-01-20 20:15:30 +00:00
Sebastian Sellmair e498499858 [Gradle] Implement LazyResolvedConfigurationTest
KT-49933
2023-01-20 20:15:30 +00:00
Sebastian Sellmair 3162769b96 [Gradle] Simplify LazyResolvedConfiguration
By:
- Removing unused `moduleArtifacts` function
- Removing bad documentation (replaced by simpler function names)+
- Using .withClosure util function

KT-49933
2023-01-20 20:15:29 +00:00
Anton Lakotka 674e7aa480 [Gradle] Remove ResolvedMppVariantsProvider and all related code in KPM
Mark places where ResolvedMppVariantsProvide were used with TODOs

^KT-49933
2023-01-20 20:15:29 +00:00
Anton Lakotka 25dbfb10b8 [Gradle] Replace legacy ProjectMetadataProviderImpl with new version
New version relies on information about metadata compilation outputs of
common source sets. That is known before ProjectMetadataProvider
is created. This makes such implementation easier to use with
Configuration Cache, since getSourceSetCompiledMetadata doesn't use
Project.

^KT-49933
2023-01-20 20:15:29 +00:00
Anton Lakotka 44f2394d94 [Gradle] Mark properties that shouldn't be used in public API as internal
^KT-49933
2023-01-20 20:15:28 +00:00
Anton Lakotka a2276f9c21 [Gradle] Create separate hostSpecificMetadataConfiguration for Native
Previously this configuration was created on ad-hoc basis by copying
the compileDependenciesConfiguration. This creates bunch of copies
which are practically doing the same thing. Extracting it on
compilation level makes it more controllable and prevents any duplicates

^KT-49933
2023-01-20 20:15:28 +00:00
Anton Lakotka c03e0f96d2 [Gradle] Use ProjectLayout in KotlinMetadataLibraryDirectories
^KT-49933
2023-01-20 20:15:28 +00:00
Anton Lakotka 20a94b80be [Gradle] Add unit tests for mergeWith
^KT-49933
2023-01-20 20:15:27 +00:00
Anton Lakotka fbbd1d737a [Gradle] Transform only composite metadata artifacts
^KT-49933
2023-01-20 20:15:27 +00:00
Anton Lakotka 4210e13103 [Gradle] Remove duplication logic from metadata transformation task
^KT-49933
2023-01-20 20:15:27 +00:00
Anton Lakotka c392f87019 [Gradle] Update ResolvedDependencyResult.toModuleDependencyIdentifier
It should work as its counterpart:

```
ModuleIds.fromComponent(
    thisProject: Project,
    component: ResolvedComponentResult
)
```

^KT-49933
2023-01-20 20:15:26 +00:00
Anton Lakotka 5094ac945c [Gradle] Fix code review NITs
* rename parentVisibleSourceSetsProvider -> visibleSourceSetsFromParentsProvider
* use flatMap.toSet() instead flatMapTo(mutableSetOf())
* Use `extraProperties` instead of extensions
* KotlinMultiplatformExtension.metadat() instead of finding it by type
* rename PlatformCompilationData.sourceSets to allSourceSets for clarity
* Use FileCollection instead of Provider<Set<File>>
* Use System.lineSeparator() instead of `\n` for better platform support
* Report meaningful error when `participatingSourceSets` is accessed
  in execution state when Task state is loaded from Configuration Cache
* Mark newly added API as internal since there is no use of them in
  user's build scripts.

^KT-49933
2023-01-20 20:15:26 +00:00
Anton Lakotka 608760e32b [Gradle] Pass lambda directly to project.files instead of wrapping it
with project.provider(). This prevents from extra evaluation during task
execution. And makes tasks compatible with configuration cache
2023-01-20 20:15:26 +00:00
Anton Lakotka 1ba199761c [Gradle] Provide meaningful error message for toSingleKpmModuleIdentifier 2023-01-20 20:15:25 +00:00
Anton Lakotka 1d8fd0bd55 [Gradle] Update IdeResolveDependenciesTask to depend on...
...TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA in an idiomatic way
2023-01-20 20:15:25 +00:00
Anton Lakotka 9ff9fa35ec [Gradle] Make CInterop[MDT]Task compatible with Configuration Cache
^KT-49933
2023-01-20 20:15:25 +00:00
Anton Lakotka 458e69f698 [Gradle] Evaluate commonizedOutputLibraries in a changing provider
Add `changing` provider for Configuration Cache compatibility.
This makes AbstractCInteropCommonizerTask be compatible
with Configuration Cache.

^KT-49933
2023-01-20 20:15:24 +00:00
Anton Lakotka 15f2179557 [Gradle] prepareKotlinIdeaImportTask should depend on transformation tasks
For cases when included build is use, we no longer consumer
kotlin project structure from Global storage but consume JAR files as
with regular external dependencies.

^KT-49933
2023-01-20 20:15:24 +00:00
Anton Lakotka d33c9d7912 [Gradle] resolveIdeDependencies should depend on transformation tasks
^KT-49933
2023-01-20 20:15:24 +00:00