File tree Expand file tree Collapse file tree 9 files changed +151
-1
lines changed Expand file tree Collapse file tree 9 files changed +151
-1
lines changed Original file line number Diff line number Diff line change 26
26
format_check_enabled : false
27
27
unacceptable_language_check_enabled : false
28
28
api_breakage_check_enabled : false
29
+
30
+ cmake_build :
31
+ name : CMake Build
32
+ runs-on : ubuntu-latest
33
+ container : swift:6.1-noble
34
+ steps :
35
+ - name : checkout sources
36
+ uses : actions/checkout@v1
37
+ - name : Install dependencies
38
+ shell : bash
39
+ run : apt update && apt install -y cmake ninja-build
40
+ - name : Configure Project
41
+ shell : bash
42
+ run : cmake -G 'Ninja' -B build -S . -DCMAKE_C_COMPILER=clang -DCMAKE_Swift_COMPILER=swiftc -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=YES
43
+ - name : Build Project
44
+ shell : bash
45
+ run : cmake --build build
Original file line number Diff line number Diff line change
1
+ ##===----------------------------------------------------------------------===##
2
+ ##
3
+ ## This source file is part of the Swift.org open source project
4
+ ##
5
+ ## Copyright (c) 2025 Apple Inc. and the Swift project authors
6
+ ## Licensed under Apache License v2.0 with Runtime Library Exception
7
+ ##
8
+ ## See https://swift.org/LICENSE.txt for license information
9
+ ##
10
+ ##===----------------------------------------------------------------------===##
11
+
12
+ cmake_minimum_required (VERSION 3.26...3.29 )
13
+ project (Subprocess LANGUAGES C Swift )
14
+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake/modules" )
15
+
16
+ add_compile_options ("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-package-name ${PROJECT_NAME} >" )
17
+
18
+ include (InstallExternalDependencies )
19
+
20
+ add_subdirectory (Sources )
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ let package = Package(
50
50
. product( name: " SystemPackage " , package : " swift-system " ) ,
51
51
] ,
52
52
path: " Sources/Subprocess " ,
53
+ exclude: [ " CMakeLists.txt " ] ,
53
54
swiftSettings: [
54
55
. enableExperimentalFeature( " StrictConcurrency " ) ,
55
56
. enableExperimentalFeature( " NonescapableTypes " ) ,
@@ -83,7 +84,8 @@ let package = Package(
83
84
84
85
. target(
85
86
name: " _SubprocessCShims " ,
86
- path: " Sources/_SubprocessCShims "
87
+ path: " Sources/_SubprocessCShims " ,
88
+ exclude: [ " CMakeLists.txt " ]
87
89
) ,
88
90
]
89
91
)
Original file line number Diff line number Diff line change
1
+ ##===----------------------------------------------------------------------===##
2
+ ##
3
+ ## This source file is part of the Swift.org open source project
4
+ ##
5
+ ## Copyright (c) 2025 Apple Inc. and the Swift project authors
6
+ ## Licensed under Apache License v2.0 with Runtime Library Exception
7
+ ##
8
+ ## See https://swift.org/LICENSE.txt for license information
9
+ ##
10
+ ##===----------------------------------------------------------------------===##
11
+
12
+ add_library (Subprocess )
13
+
14
+ add_subdirectory (_SubprocessCShims )
15
+ add_subdirectory (Subprocess )
16
+
17
+ target_compile_options (Subprocess PRIVATE
18
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature StrictConcurrency>"
19
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NonescapableTyeps>"
20
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature LifetimeDependence>"
21
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Span>" )
22
+
23
+ target_link_libraries (Subprocess PRIVATE SystemPackage )
Original file line number Diff line number Diff line change
1
+ ##===----------------------------------------------------------------------===##
2
+ ##
3
+ ## This source file is part of the Swift.org open source project
4
+ ##
5
+ ## Copyright (c) 2025 Apple Inc. and the Swift project authors
6
+ ## Licensed under Apache License v2.0 with Runtime Library Exception
7
+ ##
8
+ ## See https://swift.org/LICENSE.txt for license information
9
+ ##
10
+ ##===----------------------------------------------------------------------===##
11
+
12
+ target_sources (Subprocess PRIVATE
13
+ Execution.swift
14
+ Buffer.swift
15
+ Error.swift
16
+ Teardown.swift
17
+ Result.swift
18
+ IO/Output.swift
19
+ IO/Input.swift
20
+ Span+Subprocess.swift
21
+ AsyncBufferSequence.swift
22
+ API.swift
23
+ SubprocessFoundation/Span+SubprocessFoundation.swift
24
+ SubprocessFoundation/Output+Foundation.swift
25
+ SubprocessFoundation/Input+Foundation.swift
26
+ Configuration .swift )
27
+
28
+ if (WIN32 )
29
+ target_sources (Subprocess PRIVATE Platforms/Subprocess+Windows.swift )
30
+ elseif (LINUX OR ANDROID )
31
+ target_sources (Subprocess PRIVATE
32
+ Platforms/Subprocess+Linux.swift
33
+ Platforms/Subprocess+Unix.swift )
34
+ elseif (APPLE )
35
+ target_sources (Subprocess PRIVATE
36
+ Platforms/Subprocess+Darwin.swift
37
+ Platforms/Subprocess+Unix.swift )
38
+ endif ()
Original file line number Diff line number Diff line change
1
+ ##===----------------------------------------------------------------------===##
2
+ ##
3
+ ## This source file is part of the Swift.org open source project
4
+ ##
5
+ ## Copyright (c) 2025 Apple Inc. and the Swift project authors
6
+ ## Licensed under Apache License v2.0 with Runtime Library Exception
7
+ ##
8
+ ## See https://swift.org/LICENSE.txt for license information
9
+ ##
10
+ ##===----------------------------------------------------------------------===##
11
+
12
+ target_sources (Subprocess PRIVATE process_shims.c )
13
+
14
+ target_include_directories (Subprocess PRIVATE
15
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>" )
Original file line number Diff line number Diff line change
1
+ module _SubprocessCShims {
2
+ header "process_shims.h"
3
+ header "target_conditionals.h"
4
+ }
Original file line number Diff line number Diff line change 43
43
extern char * * environ ;
44
44
#endif
45
45
46
+ #if __has_include (< mach /vm_page_size .h > )
47
+ #include <mach/vm_page_size.h>
48
+ #endif
49
+
46
50
int _was_process_exited (int status ) {
47
51
return WIFEXITED (status );
48
52
}
Original file line number Diff line number Diff line change
1
+ ##===----------------------------------------------------------------------===##
2
+ ##
3
+ ## This source file is part of the Swift.org open source project
4
+ ##
5
+ ## Copyright (c) 2025 Apple Inc. and the Swift project authors
6
+ ## Licensed under Apache License v2.0 with Runtime Library Exception
7
+ ##
8
+ ## See https://swift.org/LICENSE.txt for license information
9
+ ##
10
+ ##===----------------------------------------------------------------------===##
11
+
12
+ include_guard ()
13
+
14
+ # TODO: Use find_package to find a pre-built SwiftSystem
15
+
16
+ include (FetchContent )
17
+
18
+ FetchContent_Declare (SwiftSystem
19
+ GIT_REPOSITORY https://github.com/apple/swift-system.git
20
+ GIT_TAG a34201439c74b53f0fd71ef11741af7e7caf01e1 # 1.4.2
21
+ GIT_SHALLOW YES )
22
+ list (APPEND dependencies SwiftSystem )
23
+
24
+
25
+ if (dependencies )
26
+ FetchContent_MakeAvailable (${dependencies} )
27
+ endif ()
You can’t perform that action at this time.
0 commit comments