Commit Graph

1633 Commits

Author SHA1 Message Date
Hugh Bellamy
3b4187fcbb Fix line-directive tool to work around Windows command line max limit 2017-01-26 09:34:55 +00:00
practicalswift
a9d6d8938c [gardening] Fix recently introduced typos 2017-01-22 20:40:45 +01:00
Hugh Bellamy
e564bdc5b5 Merge pull request #6884 from hughbe/definitions-windows
Move Windows specific compiler definitions from _add_link_flags to _add_compile_flags
2017-01-18 15:53:36 +00:00
Hugh Bellamy
f446dd0297 Ignore unknown pragma warnings with MSVC 2017-01-18 10:33:28 +00:00
Hugh Bellamy
e2755c1058 Move Windows specific compiler definitions from _add_link_flags to _add_compile_flags 2017-01-18 10:23:28 +00:00
Slava Pestov
928a3193eb Merge pull request #3886 from tinysun212/pr-stdlib-cygwin-3
[stdlib] Fixed for Cygwin
2017-01-17 12:26:25 -08:00
Han Sangjin
a8dec7fa43 [stdlib] Fixed for Cygwin
- CYGWIN symbol is used to distinguish Cygwin environment from other OS
  and other environment in Windows.
- Added windows and windowsCygnus to OSVersion in StdlibUnittest
2017-01-17 02:31:16 +09:00
Hugh Bellamy
89205d8f6b Invoke the line directive tool from python 2017-01-14 21:37:29 +00:00
Slava Pestov
75b4be61fb Merge pull request #6461 from hughbe/icu-windows
Simplify ICU package resolution not to require PkgConfig and to be more user configurable.
2017-01-11 15:41:09 -08:00
Slava Pestov
23b2a4ace8 Merge pull request #6462 from hughbe/libraries-windows
Fix linking libraries on Windows
2017-01-10 22:31:36 -08:00
Slava Pestov
ff0451821d Merge pull request #6467 from hughbe/root-windows
Add Windows support to the root CMakeLists.txt file.
2017-01-10 22:30:16 -08:00
Michael Gottesman
4a07d7f9ac Merge pull request #6692 from gottesmm/cmake_sibopt_change
[cmake] Add support for generating targets for a -Onone sib stdlib  and a -O sib stdlib, but do not build them by default.
2017-01-10 22:01:41 -08:00
Hugh Bellamy
c66b72c5fa Simplify ICU package resolution not to require PkgConfig and to be more user configurable.
If you don't have PkgConfig, you'll need to pass the following to CMake:
```
 -DICU_UC_INCLUDE_DIRS="%swift_source_dir%/icu/include"^
 -DICU_UC_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^
 -DICU_I18N_INCLUDE_DIRS="%swift_source_dir%/icu/include"^
 -DICU_I18N_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^
 -DICU_UC_LIB_NAME="icuuc"^
 -DICU_I18N_LIB_NAME="icuin"
```

icu
2017-01-10 09:01:40 +00:00
swift-ci
294359bd69 Merge pull request #4804 from kstaring/master 2017-01-10 00:01:46 -08:00
Michael Gottesman
c9a6532e08 [cmake] Add support for generating targets for a -Onone sib stdlib and a -O sib stdlib, but do not build them by default.
This is useful for engineers who do not want to reconfigure to look at a
-Onone/-O sib stdlib.
2017-01-09 16:39:23 -08:00
Slava Pestov
dfebf20670 Merge pull request #6387 from hughbe/symlink-win32
[CMake] fix symlink creation on Windows
2017-01-09 12:27:21 -08:00
Slava Pestov
ab0e9441b4 Merge pull request #6463 from hughbe/gyb-windows
Add GYB support for Windows
2017-01-09 12:25:30 -08:00
Hugh Bellamy
cceba6c09b Fix library_IMPLIB-NOTFOUND errors building Swift on Windows 2017-01-09 14:47:05 +00:00
Slava Pestov
16b20cadd8 Merge pull request #6466 from hughbe/empty-sdk-windows
Don't pass empty "/" SDK path to the swift compiler when compiling the stdlib
2017-01-09 01:45:52 -08:00
Slava Pestov
cc867af8e1 Merge pull request #6498 from hughbe/windows-dependencies
Fix Windows dependency library names
2017-01-09 01:02:30 -08:00
swift-ci
982b711dd4 Merge pull request #6488 from gonzalolarralde/link-paths-issue 2017-01-07 11:40:42 -08:00
swift-ci
e265cc684a Merge pull request #6499 from hughbe/lib-prefix-stdlib 2017-01-03 17:09:17 -08:00
Hugh Bellamy
e201d93485 Add support for Windows in the root CMakeLists.txt file 2016-12-28 14:46:18 +00:00
Hugh Bellamy
888afe139c Fix creating symlinks on Windows 2016-12-27 14:55:05 +00:00
Hugh Bellamy
464fee9110 Remove lib prefix from Windows stdlib libraries 2016-12-27 14:12:53 +00:00
Hugh Bellamy
d90b3afeb0 Fix Windows dependency library names 2016-12-27 14:08:23 +00:00
Gonzalo Larralde
e85e9e1029 Fix swift_target_link_search_directories issue appending just the last directory.
STLD_FLAGS wasn't being appended, but replaced.
2016-12-26 18:11:55 -03:00
Gonzalo Larralde
b057252400 Use linking directories from _add_variant_link_flags in _add_swift_executable_single.
Linking directories from `_add_variant_link_flags` of were overwritten
in `_add_swift_executable_single` by not using the
`LIBRARY_SEARCH_DIRECTORIES` parameter.
2016-12-26 18:11:39 -03:00
Gonzalo Larralde
b3477823f6 Improved naming for _add_variant_link_flags's parameter for library search directories.
`LIBRARY_SEARCH_DIRECTORIES` is actually being used as
`RESULT_VAR_NAME` to affect the value on the parent scope. In this
context `LIBRARY_SEARCH_DIRECTORIES_VAR_NAME` sounds like a better name.
2016-12-26 18:11:06 -03:00
Jordan Rose
fdd02f61d3 [CMake] Stop linking CoreFoundation into swiftc and libobjc into everything.
We link the stdlib against Foundation and that's quite sufficient for the REPL
and script mode to work.
2016-12-22 08:50:13 -08:00
Hugh Bellamy
c94e2a121d Don't pass empty "/" SDK path to the swift compiler when compiling the stdlib 2016-12-22 11:12:41 +00:00
Hugh Bellamy
3ad0889847 Add GYB support for Windows 2016-12-22 11:02:59 +00:00
Saleem Abdulrasool
5ec82c73a3 Merge pull request #6354 from compnerd/link-search-path
build: introduce and use `swift_target_link_search_directories`
2016-12-20 10:28:05 -08:00
Saleem Abdulrasool
92a09a0ebe build: ensure that Windows is built without PIC
PIC on windows does not make sense.  All code is position independent.
Currently clang and LLVM do the wrong thing and generate ELF style PIC
code on Windows when `-fPIC` is used.  Add `-fno-pic` to disable that
when cross-compiling to Windows.
2016-12-19 20:44:08 -08:00
Saleem Abdulrasool
f3ffd76c62 Merge pull request #6353 from compnerd/library-names
fix cross-compiled library names
2016-12-19 13:29:12 -08:00
Saleem Abdulrasool
b79b743bac Merge pull request #6350 from compnerd/windows-stdlib-improvements
Windows stdlib improvements
2016-12-18 13:31:56 -08:00
Saleem Abdulrasool
54d5188120 build: collapse a few set_property calls into set_target_properties
Just use a single call to set both properties.  NFC.
2016-12-17 21:11:32 -08:00
Saleem Abdulrasool
6ecef42a45 build: fix invalid variable usage
When the code was refactored, the old variable name `libkind` was left
in a couple of spots.  Update them to `kind`.  Remove unnecessary
quoting which would have exposed this bug.
2016-12-17 21:11:31 -08:00
Saleem Abdulrasool
6ab6d3f532 build: introduce and use swift_target_link_search_directories
Introduce a swift_target_link_search_directories which allows you to
append a search path to the linker.  This interface also allows a tweak
to make the library search directory addition more portable across
compilers (e.g. cl vs clang).
2016-12-17 21:09:58 -08:00
Michael Gottesman
7f06ef40dc [cmake] Instead of using EMIT_SIB to generate sib output, just generate targets
for sib/sibgen files for libraries without building them by default.

This will let engineers just cd into the build directory and type:

ninja swift-stdlib-sib
ninja swift-stdlib-sibgen

To generate sib and sibgen files respectively.

There are still some dependency issues in between the sib targets, so to get
this to work well, I would suggest doing a full build and then using these
targets.
2016-12-17 18:38:32 -08:00
Saleem Abdulrasool
980eb7a250 build: specify the Windows family when building for Windows
`_pipe` is only available in the Desktop App family.  Indicate to msvcrt
that we wish to use the desktop app family windows APIs.
2016-12-17 16:36:04 -08:00
Saleem Abdulrasool
90b329b6aa Merge pull request #6219 from compnerd/icu-include-flags
build: treat ICU includes as system headers
2016-12-12 13:45:06 -08:00
Saleem Abdulrasool
fbb60f8a4b build: treat ICU includes as system headers
These headers should be treated as system headers as we do not control them.

Use target_include_directories so that we can use the `SYSTEM` option to
indicate that they are system headers.  It also simplifies the invocation by not
directly modifying the underlying property.
2016-12-11 22:11:23 -08:00
Saleem Abdulrasool
24644ceef3 build: ignore non-standard C warnings on Windows
Silence a warning from Microsoft's ucrt due to use of the POSIX name (strdup).
2016-12-11 21:34:48 -08:00
Jordan Rose
26d8a9f649 [CMake] Don't pass -embed-bitcode to module generation commands. (#6109)
These are the commands Pete added in 5834df3, doing slightly more work
by compiling Swift sources twice in order to start building downstream
libraries sooner.

Really, we should diagnose when -embed-bitcode is passed here, instead
of generating nonsense commands and then falling over. I filed
https://bugs.swift.org/browse/SR-3352 for that.

rdar://problem/29537164
2016-12-06 16:42:48 -08:00
Joe Groff
1f6a8ff3ea Merge pull request #5394 from spevans/pr_libicu_with_static_executable
[SR-648] Add option to create statically linked binaries (take 2)
2016-11-30 12:34:58 -08:00
Argyrios Kyrtzidis
07148f1971 [CMake] Simplify handling for SWIFT_INSTALL_EXCLUDE_[component] option, NFC. 2016-11-30 10:09:49 -08:00
Simon Evans
1daa3ee1f8 [SR-648] Add option to create statically linked binaries
- Add ImageInspectionStatic.cpp to lookup protocol conformance
  and metadata sections in static binaries

- For Linux, build libswiftImageInspectionShared.a and
  libswiftImageInspectionStatic.a for linking with libswiftCore.a.
  This allows static binaries to be built without linking to
  libdl. libswiftImageInspectionShared (ImageInspectionELF.cpp) is
  automatically compiled into libswiftCore.so

- Adds -static-executable option to swiftc to use along with
  -emit-executable that uses linker arguments in
  static-executable-args.lnk. This also requires a libicu
  to be compiled using the --libicu which has configure options
  that dont require libdl for accessing ICU datafiles

- Static binaries only work on Linux at this time
2016-11-29 13:36:19 +00:00
Argyrios Kyrtzidis
446db97367 [CMake] Check if a cmake variable 'SWIFT_INSTALL_EXCLUDE_[component]' is set for a component.
In which case the 'SWIFT_INSTALL_[component]' will be FALSE.
This is useful to get the behavior where all components are set to install by default and exclude just a specific one.
2016-11-28 08:54:37 -08:00
Doug Coleman
dcb9b39ff5 Merge pull request #5821 from rintaro/cmake-depends-handle_swift_sources
[CMake] Add DEPENDS to dependencies for compiling sources.
2016-11-17 16:47:40 -08:00