summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Version: Update development dateBrad King2020-04-271-1/+1
|
* Merge branch 'cc-msvc-target'Brad King2020-04-271-0/+3
|\ | | | | | | | | | | * cc-msvc-target: test: Run cc-msvc-builtin-1923 test with suitable target triple Detect: Add MSVC target triple component
| * Detect: Add MSVC target triple componentBrad King2020-04-271-0/+3
| | | | | | | | When `_MSC_VER` is among compiler predefines, the target ABI is MSVC.
| * CastXML 0.3.3v0.3.3Brad King2020-04-031-1/+1
| |
| * CastXML 0.3.2v0.3.2Brad King2020-04-011-1/+1
| |
* | Version: Update development dateBrad King2020-04-031-1/+1
| |
* | Merge branch 'msvc-builtin-conflict'Brad King2020-03-311-0/+11
|\ \ | |/
| * RunClang: Tolerate __builtin_assume_aligned declaration in MSVC headerBrad King2020-03-311-0/+11
| | | | | | | | | | | | | | | | MSVC tools 14.23 and above declare `__builtin_assume_aligned` in `intrin0.h` with a signature incompatible with Clang's builtin. It is guarded by `!defined(__clang__)` but that breaks when we simulate MSVC's preprocessor. Rename the builtin via preprocessing to avoid the conflict.
| * CastXML 0.3.1v0.3.1Brad King2020-02-181-1/+1
| |
* | Version: Update development dateBrad King2020-02-181-1/+1
| |
* | Merge branch 'shared-clang'Brad King2020-02-181-12/+22
|\ \ | |/
| * cmake: Add option CLANG_LINK_CLANG_DYLIB to use clang-cpp shared libMattias Ellert2020-02-181-12/+22
| | | | | | | | | | Clang 9 introduced a `clang-cpp` shared library that we can optionally use instead of linking to the static libraries.
* | Begin post-0.3 developmentBrad King2020-02-131-1/+1
|/
* CastXML 0.3.0v0.3.0Brad King2020-02-131-2/+2
|
* Update documentation and comments to use https links where possibleBrad King2020-02-1313-13/+13
|
* Merge branch 'release-0.2'Brad King2020-02-131-20/+14
|\
| * Version: Drop git describe commit count from version numberBrad King2020-02-131-9/+1
| | | | | | | | | | | | | | Revise the logic from commit 60dc8284 (Version: Update version scheme to distinguish release and dev versions, 2019-04-11, v0.2.0~2) to drop the `-<count>` portion of the version number. This makes the version string the same for versions built from a Git source tree and from a tarball.
| * Version: Prefer Git information provided by 'git archive' exportsBrad King2020-02-131-11/+13
| | | | | | | | | | | | | | | | Update the approach from commit 60dc8284 (Version: Update version scheme to distinguish release and dev versions, 2019-04-11, v0.2.0~2) to prefer `export-subst` information. This will allow exported source trees to be imported into unrelated Git repositories while still using the original upstream CastXML commit information.
* | Version: Update development dateBrad King2020-02-131-1/+1
| |
* | Port to LLVM/Clang Git master as of 2020-02-13 (6c73246179)Brad King2020-02-133-4/+12
| | | | | | | | | | | | The `llvm::StringRef` type now requires explicit conversion to `std::string`. Such explicit conversions still work with older versions of LLVM/Clang too.
* | Output: Add decltype supportLucas Gandel2020-02-111-7/+3
| | | | | | | | | | Extend the `--castxml-output=1` format to support decltype. Create a dump node for the underlying type.
* | Port to LLVM/Clang SVN r375505 (trunk)Brad King2019-12-092-2/+14
| | | | | | | | | | | | Clang renamed `clang/AST/TypeNodes.{def => inc}` and replaced the `createDriverOptTable` factory with a singleton returned by `getDriverOptTable`.
* | Port to LLVM/Clang SVN r370248 (trunk)Brad King2019-08-291-3/+15
| | | | | | | | | | | | LLVM now compiles as C++14. It does not provide `llvm::make_unique`. The `clang::CompilerInvocation::CreateFromArgs` signature now accepts an `ArrayRef` for the argument range instead of iterators.
* | cmake: bump minimum required version to 3.3Brad King2019-08-291-1/+6
| | | | | | | | | | Adapt our `target_link_libraries` call based on the version of LLVM to account for policy `CMP0023` NEW behavior.
* | Version: Update development dateBrad King2019-08-191-1/+1
| |
* | Output: Indicate whether an Enumeration is scopedBrad King2019-08-191-1/+4
| | | | | | | | Fixes: #94
* | Version: Update development dateBrad King2019-08-061-1/+1
| |
* | Utils: Fix trivial comment typoMatthew Fernandez2019-08-061-1/+1
| |
* | Merge branch 'ppc64'Brad King2019-07-151-5/+17
|\ \ | |/ | | | | | | | | * ppc64: Detect: Drop detected predefined macros conflicting with Clang's Detect: Fix GNU builtin include directory detection on ppc64
| * Detect: Drop detected predefined macros conflicting with Clang'sBrad King2019-07-151-4/+12
| | | | | | | | | | | | Extend the filtering added by commit 1cf66488 (Detect: Drop detected predefined macros starting in '__has', 2015-02-04, v0.2.0~199) to cover more Clang builtin macros. In particular, cover builtins on ppc64.
| * Detect: Fix GNU builtin include directory detection on ppc64Brad King2019-07-151-1/+5
| | | | | | | | | | There is no `emmintrin.h` header for this architecture, so use `altivec.h` instead.
* | Begin post-0.2 developmentBrad King2019-04-181-1/+1
|/
* CastXML 0.2.0v0.2.0Brad King2019-04-181-2/+2
|
* Version: Update version scheme to distinguish release and dev versionsBrad King2019-04-111-39/+48
| | | | | | | | Use the format `<major>.<minor>.<patch>[-rc<n>][-<id>]` for release versions and `<major>.<minor>.<date>[-<id>]` for development versions. Assume we will identify exact release versions with a `v<ver>` tag on a commit with subject `CastXML <ver>`. Aadd an `-<id>` suffix to versions that are not exact release commits.
* RunClang: Improve predefined macros identifying castxmlBrad King2019-04-113-9/+42
| | | | | | | | Provide `__castxml_{major,minor,patch}__`. Re-purpose `__castxml__` to be for comparison with a `__castxml_check()` helper. Leave the actual encoding of the components unspecified. Ensure the integer version value of the encoding is larger than the only value of `1000` that `__castxml__` had previously.
* Output: Add the type of nullptr as a FundamentalTypeBrad King2019-04-091-0/+14
| | | | | | | | | Extend the `--castxml-output=1` format to support the nullptr type. The name of the type is `decltype(nullptr)`. Recognize types named exactly this way (as a literal) and treat them as a FundamentalType. This gives the `std::nullptr_t` typedef a meaningful representation even without full decltype support. Leave deeper nullptr-typed expressions like `decltype((nullptr))` unchanged.
* Revise C++ coding style using clang-format-6.0Kitware Robot2019-04-085-6/+8
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* clang-format.bash: update to clang-format-6.0Brad King2019-04-081-1/+1
| | | | | | Update `.clang-format` with configuration to make the 6.0 format as close as possible to what 3.8 produced before. Then revise the style to indent preprocessor directives (a feature new since 3.8).
* cmake: drop explicit link to version.lib on WindowsBrad King2019-03-111-3/+0
| | | | | | | | | | Since commit 9c91919574 (cmake: work with LLVM_LINK_LLVM_DYLIB, 2019-01-17) our `llvm_libs` variable is a list of LLVM components rather than a list of raw library names. The `version.lib` library is not a LLVM component. Fortunately we can simply drop it because LLVM now computes the proper list of libraries for its components. Fixes: #133
* cmake: work with LLVM_LINK_LLVM_DYLIBDan McGregor2019-01-171-5/+7
| | | | Support linking against the shared version of LLVM libraries.
* Port to LLVM/Clang SVN r346978 (trunk)Brad King2018-11-151-2/+11
| | | | | LLVM/clang commit r345637 (Remove the ObjC1/ObjC2 distinction from clang, 2018-10-30) changed the language options for Objective C.
* Port to LLVM/Clang SVN r338041 (trunk)Brad King2018-07-272-3/+22
| | | | | | | | | | | LLVM/Clang commit r334518 (Refactor ExecuteAndWait to take StringRefs, 2018-06-12) changed the signature of `ExecuteAndWait`. Update our call. LLVM/Clang commit r330216 (Rename sys::Process::GetArgumentVector -> sys::windows::GetCommandLineArguments, 2018-04-17) removed the `GetArgumentVector` API we were using. Instead use `InitLLVM` to get proper command-line arguments as was done for Clang by LLVM/Clang commit r330067 (Use InitLLVM in clang as well, 2018-04-13).
* castxml: Process arguments before initializing LLVM targetsBrad King2018-07-271-5/+5
|
* Output: Add original types to decayed function parametersBrad King2018-03-221-2/+9
| | | | | | | | | Some types decay when used in function parameters (e.g. arrays become pointers). When this occurs, add an `original_type` attribute to reference the original type without decay. Issue: #96 Inspired-by: Todd Martin (todoooo on github)
* RunClang: Tolerate use of GNU builtin __has_unique_object_representationsBrad King2017-12-051-0/+19
| | | | | | | | | | | The builtin is used by the GNU type_traits header in modes aware of C++17, so we need to provide it in CastXML. LLVM/Clang SVN r316518 (implement __has_unique_object_representations, 2017-10-24), in development of Clang 6, added this GNU builtin. For older versions of LLVM/Clang, provide a minimum implementation that at least allows `type_traits` to parse. Fixes: #98
* Port to LLVM/Clang SVN r319768 (trunk)Brad King2017-12-051-0/+8
| | | | | | | | | Since LLVM/Clang SVN r313155 (Convenience/safety fix for llvm::sys::Execute(And|No)Wait, 2017-09-13) the signature of `ExecuteAndWait` uses `Optional` instead of raw pointers for optional redirections. Also document support for LLVM/Clang 5.0 in our README.
* RunClang: Detect -std=c++17 from --castxml-cc-gnuBrad King2017-12-051-1/+7
|
* RunClang: Detect -std=c++17 from --castxml-cc-msvcBrad King2017-12-051-1/+16
| | | | | | | Updates to VS 2015 and VS 2017 added support for `-std:` flags specifying the language standard level for MSVC. The level is reported in the `_MSVC_LANG` preprocessor definition instead of `__cplusplus`. Detect MSVC standard C++ level from `_MSVC_LANG`.
* Output: Add deprecated attributeBrad King2017-10-131-2/+6
| | | | Fixes: #92
* Output: Always print name= attribute for function-like elementsBrad King2017-10-031-20/+22
| | | | | | | | Anonymous struct and union types may have constructors and destructors that are also anonymous. Generate `name=""` in such cases because clients expect these function-like elements to have names as gccxml did. Issue: #89