Commit Graph

91 Commits

Author SHA1 Message Date
Jussi Pakkanen aaae1b2a30 Xcode: handle capturing generators. 2021-04-16 18:14:01 +03:00
Jussi Pakkanen 39f963988b Xcode: this is what happens when you do not treat command lines as arrays. 2021-04-15 17:21:45 +03:00
Jussi Pakkanen 318d50270c Xcode: remove some unnecessary dict entries. 2021-04-15 17:21:45 +03:00
Jussi Pakkanen e18b5f091d Xcode: add functionality for sources created with a generator. 2021-04-15 17:21:45 +03:00
Jussi Pakkanen e7ceab7510 Xcode: do not process custom target outputs on targets they are not used in. 2021-04-14 17:25:41 +03:00
Jussi Pakkanen c92a860c8b Xcode: add sanity check asserts. 2021-04-14 17:25:41 +03:00
Jussi Pakkanen 96d85d601d Xcode: fix path of extracted objects in subdirs. 2021-04-14 17:25:41 +03:00
Jussi Pakkanen bb350aaf6f Xcode: use correct key for file id lookup. 2021-04-14 17:25:41 +03:00
Jussi Pakkanen 50cf8bcaba Xcode: can generate object files with generators. 2021-04-11 23:59:22 +03:00
Jussi Pakkanen 9dfd53dc40 Xcode: fix setting up inlude args for source and build dirs. 2021-04-11 23:59:22 +03:00
Jussi Pakkanen be3efaf1d5 Xcode: fix linking of static libs that link to other libs. 2021-04-11 23:59:22 +03:00
Jussi Pakkanen 05489616fb Xcode: use common language options like std version. 2021-04-10 20:33:51 +03:00
Jussi Pakkanen 86fb916d33 Xcode: Fix source generation. 2021-04-10 20:33:51 +03:00
Jussi Pakkanen c9d98e9a98 Xcode: Fix target prefixes and suffixes and conf-time generated sources. 2021-04-09 22:21:38 +03:00
Jussi Pakkanen 82f5d12a56 Xcode: Fix object extraction. 2021-04-09 22:21:38 +03:00
Jussi Pakkanen f328632fa5 Write include directory names with the correct amount of quoting. 2021-04-09 16:51:42 +03:00
Jussi Pakkanen 9fb0abb754 Write include dirs with absolute paths in the Xcode backend, relative ones do not seem to work. 2021-04-09 16:51:42 +03:00
Jussi Pakkanen 59306c45c5 Fix Xcode targets in subdirs. 2021-04-08 10:22:57 +03:00
Jussi Pakkanen e759c8b2e9 Remove unneeded variable. 2021-04-08 10:22:57 +03:00
Jussi Pakkanen fb222f4702 Avoid rebuilding the target list all the time. 2021-04-08 10:22:57 +03:00
Jussi Pakkanen 5614ce4a54 Skip compilers that are not used for a given target. 2021-04-08 10:22:57 +03:00
Jussi Pakkanen 0b50c5705f Fix shared libs and using one source in multiple targets. 2021-04-07 17:01:55 +03:00
Jussi Pakkanen 3b16e39009 Fix building static libs with the Xcode backend. 2021-04-07 17:01:55 +03:00
Jussi Pakkanen 1dd2bbaa01 LGTM fix. 2021-04-05 16:23:03 +03:00
Jussi Pakkanen 3c3146195b Use warning args in the Xcode backend. 2021-04-05 15:50:54 +03:00
Jussi Pakkanen 82f7f63932 Use actual build type rather than hardcoding "debug". 2021-04-05 13:20:36 +03:00
Jussi Pakkanen 99a8076b78 Set debug info in the Xcode native way. 2021-04-05 13:09:18 +03:00
Jussi Pakkanen e5766454d6 Set optimization level in the Xcode native way. 2021-04-05 13:03:51 +03:00
Jussi Pakkanen 6043016a38 Refactor Xcode target generation to its own method. 2021-04-05 12:41:32 +03:00
Jussi Pakkanen 2d30f8d124 Fix LGTM issues. 2021-04-04 21:03:49 +03:00
Jussi Pakkanen 3420957c73 Move constant to module level. 2021-04-04 19:30:36 +03:00
Jussi Pakkanen bf08bba371 Delete old implementation. 2021-04-04 19:26:54 +03:00
Jussi Pakkanen c43007408c Add last few things we skipped. 2021-04-04 19:05:29 +03:00
Jussi Pakkanen fb70490bd3 Fix all the minor things that got broken. 2021-04-04 18:54:52 +03:00
Jussi Pakkanen dc9e2d6269 Converted the last bit. 2021-04-04 17:48:03 +03:00
Jussi Pakkanen 3ce0ce86c9 Convert build configuration. 2021-04-04 17:20:22 +03:00
Jussi Pakkanen a026213145 Convert a few more. 2021-04-04 15:50:47 +03:00
Jussi Pakkanen 7a3fdf70cc Convert PBXGroup. 2021-04-04 13:40:54 +03:00
Jussi Pakkanen d78dba08a7 Convert a few more. 2021-04-04 00:32:03 +03:00
Jussi Pakkanen 87f1007ba7 Reduce verbosity. 2021-04-03 23:47:35 +03:00
Jussi Pakkanen 18f718299c Convert one more object type and some scaffolding. 2021-04-03 23:33:08 +03:00
Jussi Pakkanen 0967800705 Start refactoring the xcode backend by creating proper classes for pbx primitives. 2021-04-03 20:57:40 +03:00
Eli Schwartz 6a0fabc647
mass rewrite of string formatting to use f-strings everywhere
performed by running "pyupgrade --py36-plus" and committing the results
2021-03-04 17:16:11 -05:00
Jeff Moguillansky 9226a92fe0 xcode-backend: add implicit includes
Move helper functions get_source_dir_include_args and
get_build_dir_include_args to backend base class
2021-02-04 13:05:17 -08:00
Jeff Moguillansky 7fd69cb4c4 xcode-backend: set global link args 2021-02-04 13:05:17 -08:00
Jeff Moguillansky 5d94d161ff xcode-backend: fix include paths
Add project directory as include path
Add include paths from dependencies for all languages (c, c++, objc, objc++)
2021-02-04 17:35:20 +00:00
Jeff Moguillansky 4f8cecca97 build: add function get_build_targets to Build class
Add function to Build class to get targets of type BuildTarget
Update xcode backend to call get_build_targets when iterating over targets.
This resolves crash in xcode backend when using custom targets:

AttributeError: ‘CustomTarget’ object has no attribute ‘objects’
2021-01-30 11:30:56 +00:00
Jeff Moguillansky 9eb8b6be28 xcode-backend: fix include paths
Add include paths from dependencies
2021-01-28 16:32:21 -08:00
Dylan Baker 23d3b98fc1 split mesonlib into a package
Currently mesonlib does some import tricks to figure out whether it
needs to use windows or posix specific functions. This is a little
hacky, but works fine. However, the way the typing stubs are implemented
for the msvcrt and fnctl modules will cause mypy to fail on the other
platform, since the functions are not implemented.

To aleviate this (and for slightly cleaner design), I've split mesonlib
into a pacakge with three modules. A universal module contains all of
the platform agnositc code, a win32 module contains window specific
code, a posix module contains the posix specific code, and a platform
module contains no-op implementations. Then the package's __init__ file
imports all of the universal functions and all of the functions from the
approriate platform module, or the no-op versions as fallbacks. This
makes mypy happy, and avoids `if`ing all over the code to switch between
the platform specific code.
2021-01-23 12:48:29 +01:00
Dylan Baker e81acbd606 Use a single coredata dictionary for options
This patches takes the options work to it's logical conclusion: A single
flat dictionary of OptionKey: UserOptions. This allows us to simplify a
large number of cases, as we don't need to check if an option is in this
dict or that one (or any of 5 or 6, actually).
2021-01-04 12:20:58 -08:00