Skip to content

Commit 84a1ffc

Browse files
committed
[Shims] Include SwiftShims headers without ../
This replaces a number of `#include`-s like this: ``` #include "../../../stdlib/public/SwiftShims/Visibility.h" ``` with this: ``` #include "swift/shims/Visibility.h" ``` This is needed to allow SwiftCompilerSources to use C++ headers which include SwiftShims headers. Currently trying to do that results in errors: ``` swift/swift/include/swift/Demangling/../../../stdlib/public/SwiftShims/module.modulemap:1:8: error: redefinition of module 'SwiftShims' module SwiftShims { ^ Builds.noindex/swift/swift/bootstrapping0/lib/swift/shims/module.modulemap:1:8: note: previously defined here module SwiftShims { ^ ``` This happens because the headers in both the source dir and the build dir refer to SwiftShims headers by relative path, and both the source root and the build root contain SwiftShims headers (which are equivalent, but since they are located in different dirs, Clang treats them as different modules).
1 parent 435af14 commit 84a1ffc

File tree

99 files changed

+84
-82
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+84
-82
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,7 @@ get_filename_component(SWIFT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} REALPATH)
735735
set(SWIFT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
736736
set(SWIFT_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
737737
set(SWIFT_MAIN_INCLUDE_DIR "${SWIFT_SOURCE_DIR}/include")
738+
set(SWIFT_SHIMS_INCLUDE_DIR "${SWIFT_SOURCE_DIR}/stdlib/public/SwiftShims")
738739
set(SWIFT_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include")
739740

740741
set(SWIFT_RUNTIME_OUTPUT_INTDIR "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin")
@@ -785,6 +786,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
785786
include_directories(BEFORE
786787
${SWIFT_MAIN_INCLUDE_DIR}
787788
${SWIFT_INCLUDE_DIR}
789+
${SWIFT_SHIMS_INCLUDE_DIR}
788790
)
789791

790792
# Configuration flags passed to all of our invocations of gyb. Try to

cmake/modules/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set(SWIFT_CONFIG_EXPORTS ${SWIFT_EXPORTS} ${SWIFT_BUILDTREE_EXPORTS})
1010
export(TARGETS ${SWIFT_CONFIG_EXPORTS} FILE ${SWIFT_EXPORTS_FILE})
1111

1212

13-
set(SWIFT_INCLUDE_DIRS ${SWIFT_INCLUDE_DIR} ${SWIFT_MAIN_INCLUDE_DIR})
13+
set(SWIFT_INCLUDE_DIRS ${SWIFT_INCLUDE_DIR} ${SWIFT_MAIN_INCLUDE_DIR} ${SWIFT_SHIMS_INCLUDE_DIR})
1414
set(SWIFT_LIBRARY_DIRS ${SWIFT_LIBRARY_OUTPUT_INTDIR})
1515

1616
configure_file(

include/swift/ABI/HeapObject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717
#ifndef SWIFT_ABI_HEAPOBJECT_H
1818
#define SWIFT_ABI_HEAPOBJECT_H
1919

20-
#include "../../../stdlib/public/SwiftShims/HeapObject.h"
20+
#include "swift/shims/HeapObject.h"
2121

2222
#endif // SWIFT_ABI_HEAPOBJECT_H

include/swift/ABI/KeyPath.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
#include <cstdint>
2424
#include <cassert>
25-
#include "../../../stdlib/public/SwiftShims/KeyPath.h"
25+
#include "swift/shims/KeyPath.h"
2626

2727
namespace swift {
2828

include/swift/ABI/Metadata.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
#include "swift/Demangling/Demangle.h"
4141
#include "swift/Demangling/ManglingMacros.h"
4242
#include "swift/Basic/Unreachable.h"
43-
#include "../../../stdlib/public/SwiftShims/HeapObject.h"
43+
#include "swift/shims/HeapObject.h"
4444
#include "llvm/ADT/STLExtras.h"
4545
#include "llvm/Support/Casting.h"
4646

include/swift/ABI/System.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717
#ifndef SWIFT_ABI_SYSTEM_H
1818
#define SWIFT_ABI_SYSTEM_H
1919

20-
#include "../../../stdlib/public/SwiftShims/System.h"
20+
#include "swift/shims/System.h"
2121

2222
#endif // SWIFT_ABI_SYSTEM_H

include/swift/Demangling/Errors.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#ifndef SWIFT_DEMANGLING_ERRORS_H
2020
#define SWIFT_DEMANGLING_ERRORS_H
2121

22-
#include "../../../stdlib/public/SwiftShims/Visibility.h"
2322
#include "swift/Demangling/NamespaceMacros.h"
23+
#include "swift/shims/Visibility.h"
2424
#include <inttypes.h>
2525
#include <stdarg.h>
2626

include/swift/Runtime/Config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ extern uintptr_t __COMPATIBILITY_LIBRARIES_CANNOT_CHECK_THE_IS_SWIFT_BIT_DIRECTL
166166
#endif
167167

168168
// Bring in visibility attribute macros
169-
#include "../../../stdlib/public/SwiftShims/Visibility.h"
169+
#include "swift/shims/Visibility.h"
170170

171171
// Define mappings for calling conventions.
172172

include/swift/Runtime/Heap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include <utility>
2323

2424
#include "swift/Runtime/Config.h"
25-
#include "../../../stdlib/public/SwiftShims/Visibility.h"
25+
#include "swift/shims/Visibility.h"
2626

2727
namespace swift {
2828
// Allocate plain old memory. This is the generalized entry point

include/swift/Runtime/HeapObject.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
#endif // SWIFT_OBJC_INTEROP
2828

2929
// Bring in the definition of HeapObject
30-
#include "../../../stdlib/public/SwiftShims/HeapObject.h"
31-
#include "../../../stdlib/public/SwiftShims/Visibility.h"
30+
#include "swift/shims/HeapObject.h"
31+
#include "swift/shims/Visibility.h"
3232

3333
namespace swift {
3434

0 commit comments

Comments
 (0)