Commit Graph

66 Commits

Author SHA1 Message Date
Alexander.Likhachev a19bd2ed2e [Build] Migrate most of the build logic from Project.buildDir usage
It's going to be deprecated in Gradle 8.3

There's currently no way to pass a `org.gradle.api.provider.Provider` to the JavaExec.systemProperty or Test.systemProperty. There's a workaround using `org.gradle.process.CommandLineArgumentProvider`, but I intentionally don't rework these calls as Gradle is going to allow passing providers to configure system properties: https://github.com/gradle/gradle/issues/12247#issuecomment-1568427242
^KTI-1473 In Progress
2023-12-07 18:31:06 +00:00
Dmitriy Dolovov 60c88b010d [Native] Add missing dependencies to platform lib DEF files
There are a lot of cases when a DEF file for a K/N platform library
has incomplete set of dependencies in 'depends=' property in
the manifest file. This leads to use of "KLIB resolver" - the
component inside the compiler that is responsible for finding the
missing libraries and implicitly (i.e. invisibly for the end user)
adding them to the set of dependencies of the compiler invocation.

The goal of this commit is to fix 'depends=' in manifest files so that
they should reflect the REAL set of dependencies, and as a result don't
trigger use of "KLIB resolver". This way we could be more prepared to
removed in the "KLIB resolver" in the future.

^KT-61098
2023-11-15 19:38:25 +00:00
Dmitriy Dolovov c3da16a1d8 [Native] Use library paths instead of library names in K/N build infra
Use library paths instead of library names in K/N build infra when
passing a library through `-library` compiler argument.

^KT-61098
2023-11-15 19:38:25 +00:00
Pavel Punegov 9961780fbd [K/N][build] Build platform libraries without zipping/unzipping
With "-nopack" compiler option, it is possible to build unzipped klibs.
This makes it possible to get rid of install tasks that unzip them.
Also, an obsolete test for klib installation was removed.
2023-11-01 20:58:21 +00:00
Pavel Punegov e01cea6669 [K/N][build] Add providers to klib install and cache tasks 2023-10-19 12:12:02 +00:00
Timofey Solonin 8dc9307f9e Add iconv void * overloads for backwards compatibility
Since Xcode 15 the iconv APIs operate on an opaque type __tag_iconv_t* instead of
void*. This causes a runtime exception in older Ktor versions which
depended on iconv.

^KT-62286
2023-10-04 08:04:37 +02:00
Timofey Solonin 7973d898d2 Remove __clear_cache builtin and SparseGetInertia from the targets where
these functions are unlinkable

^KT-61369
2023-10-02 10:13:57 +00:00
Timofey Solonin 35de28d1aa Make NSBezierPathElement an enum
and move NSImage and NSProgessIndicator APIs from categories back to the types

^KT-61369
2023-10-02 10:13:57 +00:00
Timofey Solonin e7dbb9c9a8 Return APIs hidden by __CCT_ENABLE_USER_SPACE
^KT-61369
2023-10-02 10:13:56 +00:00
Timofey Solonin 33a4958c4c Move CloudKit changes from a category to the type
^KT-61369
2023-10-02 10:13:56 +00:00
Timofey Solonin 94f86d6ef9 Update def files for Xcode 15
^KT-61369
2023-10-02 10:13:56 +00:00
Svyatoslav Scherbina a30b1c6cc1 Native: remove a few headers from linux_arm32_hfp linux platform lib
Those are not available in the new GCC toolchain.

^KT-58864
2023-07-21 16:13:26 +00:00
Svyatoslav Scherbina 682c105230 Native: remove unused headers.x86-64 from linux.def
`headers.x86-64` property in a cinterop .def file is not actually used
by cinterop. `headers.x64` should be used instead.

This commit removes it completely instead of renaming -- no functional
changes are done.
2023-07-21 16:13:25 +00:00
Svyatoslav Scherbina 7ca0cb1077 Native: don't add ExperimentalForeignApi to platform libs
Use -Xdisable-experimental-annotation when generating platform libs.
As a result, unlike all other cinterop libraries, declarations in
platform libs won't require ExperimentalForeignApi opt-in

^KT-58362
2023-07-21 11:54:14 +00:00
Vladimir Sukharev c3734aa9ce [K2/N] Build platform libs with XCode 14.3
Merge-request: KT-MR-9458
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-04-04 11:41:08 +00:00
Vladimir Sukharev 45de88abae [K/N][KT-39120] Build platform libraries with -fmodules
Merge-request: KT-MR-8175
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-01-13 07:33:42 +00:00
Sergey Bogolepov c465d8248c [K/N] Update macOS SDK to Xcode 14.1 2022-11-17 17:37:13 +00:00
Sergey Bogolepov 719bc025f1 [K/N] Fix platform libs for macOS 14.1 SDK.
Apply the same CFCGTypes.def hack as we did for other platforms.
2022-11-17 17:37:12 +00:00
Vladimir Sukharev f099c190f7 Parallelize platformLibs build on macos_arm64 2022-11-01 15:07:07 +00:00
Sergey Bogolepov 357983389c [K/N] KT-54164
Extract CFBase.h and CFAvailability.h to CoreFoundationBase on macOS
for the sake of unification with *OS. Also, it fixes commonizer.
2022-09-26 14:35:30 +00:00
Nikolay Krasko 1630386712 Move to JDK_X_Y variables 2022-09-21 22:53:19 +00:00
Sergey Bogolepov 0b4a4ca42b [K/N] AArch64 watchOS target 2022-09-18 08:58:21 +00:00
Sergey Bogolepov ad9de1f8c4 [K/N]Split CoreFoundationBase and CFCGTypes from CoreFoundation
Ugly hack to keep Kotlin ABI of CGPoint and its friends.
In *OS (except macOS) SDKs Apple moved CGPoint and some other
fundamental types from CoreGraphics to CoreFoundation in a way
which breaks ABI for K/N platform libraries. To mitigate this
problem we split CoreFoundation platform library into several
smaller ones.
2022-09-17 07:51:36 +03:00
Sergey Bogolepov ff526e6c28 [K/N] Move ptrauth.h from CoreFoundation to a more proper namespace 2022-09-17 07:51:36 +03:00
Sergey Bogolepov 9ec8576c5e [K/N] update iOS platform libs for Xcode 14 2022-09-17 07:51:35 +03:00
Sergey Bogolepov df48b24631 [K/N] Update watchOS platform libs for Xcode 14 2022-09-17 07:51:35 +03:00
Sergey Bogolepov 176f9335eb [K/N] Update tvOS platform libs for Xcode 14 2022-09-17 07:51:35 +03:00
Sergey Bogolepov 7f78f806d4 [K/N] update macOS platform libs for Xcode 14 2022-09-17 07:51:35 +03:00
Sergey Bogolepov 5152966aa0 [K/N] KT-39747
Add a WinHTTP platform library.
2022-08-19 08:27:26 +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
Sergey Bogolepov 1dd76fa637 [K/N] Re-enable Hypervisor framework
^KT-50045
2021-12-24 12:44:36 +00:00
Sergey Bogolepov 2f6b367e25 [K/N] Enable Kernel framework
Export only minimal set of headers that is required for Hypervisor.
2021-12-24 12:44:36 +00:00
Sergey Bogolepov 26994817d1 [K/N] Update watchOS platform libraries for Xcode 13.1 2021-12-03 12:46:35 +00:00
Sergey Bogolepov 4bd4ef6fee [K/N] Update tvOS platform libraries for Xcode 13.1 2021-12-03 12:46:34 +00:00
Sergey Bogolepov c6574d9d80 [K/N] Update iOS platform libraries for Xcode 13.1 2021-12-03 12:46:34 +00:00
Sergey Bogolepov 5cd3043628 [K/N] Update macOS platform libraries for Xcode 13.1 2021-12-03 12:46:34 +00:00
Sergey Bogolepov da5c86cc1e [K/N] Add missing watchos_simulator_arm64 to watchOS set_depends.sh 2021-11-30 13:02:01 +00:00
Pavel Punegov 2bb5a554a8 [K/N][build] Small fix to platformLibs build script 2021-11-11 12:16:27 +00:00
Pavel Punegov e07fa31784 [K/N][build] Move KLibInstall to Konan gradle plugin 2021-11-11 12:16:26 +00:00
Pavel Punegov 547501865c [K/N][build] PlatformLibs project small refactorings 2021-11-11 12:16:25 +00:00
Pavel Punegov 0c47ac3cd0 [K/N][build] Rewrite platforms libs to kts 2021-11-11 12:16:24 +00:00
Pavel Punegov 67eedbe03e [K/N][build] Move stdlib caching to runtime project 2021-11-11 12:16:22 +00:00
Pavel Punegov 634812f96f [K/N][build] Split stdlib and endorsed libraries build and caching
Due to the usage of dist as an input and output at the same time by
different tasks Gradle issued warning about Execution optimizations
turning off. The fix is to split inputs and outputs in the build and
cache tasks of stdlib and endorsed libs.
2021-10-22 09:29:19 +00:00
Sergey Bogolepov dc29618857 [K/N] Fix KT-48523 2021-08-31 11:54:45 +00:00
Pavel Punegov 2656c94535 [Native] Use common toolchain configuration 2021-08-03 10:15:08 +00:00
Pavel Punegov ba5bd0b069 [Native] Add java plugin dependency to Konan plugin
Change required version of Gradle to 6.7
2021-08-03 10:15:07 +00:00
Pavel Punegov 5338705402 [Native] Enable parallel platform libs generation on parameter
Use kotlin.native.platformLibs.parallel to control parallel generation.
Disable parallel execution of platform libs on MacOS aarch64
2021-08-03 10:15:06 +00:00
Sergey Bogolepov 1ae8e01b32 [Native][MIPS] Add stddef.h to platform.posix on linux
For some reason, ptrdiff_t is missing in platform.posix on MIPS,
yet referenced from platform.linux.__morecore. Fixed by adding parent
header.
This fix is ABI for MIPS targets breaking because some declarations move
from platform.linux to platform.posix package.

^KT-46957 Fixed
2021-06-08 09:02:49 +00:00
Svyatoslav Scherbina 9f77c68f17 Remove bintray repositories from kotlin-native build 2021-03-03 09:38:45 +00:00
Vasily Levchenko bdc87edfd0 [build] cache repository fix 2021-02-26 12:51:51 +01:00