summaryrefslogtreecommitdiffstats
path: root/Source/bindexplib.cxx
Commit message (Collapse)AuthorAgeFilesLines
* iwyu: Fix VisualStudio specific issuesDaniel Pfeifer2016-11-281-2/+1
|
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* bindexplib: Export symbols from objects even with explicit markupYury Zhuravlev2016-07-051-3/+1
| | | | | | | | | | | Drop our `HaveExportedObjects` check before dumping exports for an object file. It is possible for only a subset of needed symbols to have explicit markup, and re-exporting the marked symbols does not hurt. This leaves no callers of `HaveExportedObjects`, but leave the method in place anyway because it may be useful in the future. Fixes #16161.
* Format include directive blocks and ordering with clang-formatBrad King2016-04-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sort include directives within each block (separated by a blank line) in lexicographic order (except to prioritize `sys/types.h` first). First run `clang-format` with the config file: --- SortIncludes: false ... Commit the result temporarily. Then run `clang-format` again with: --- SortIncludes: true IncludeCategories: - Regex: 'sys/types.h' Priority: -1 ... Commit the result temporarily. Start a new branch and cherry-pick the second commit. Manually resolve conflicts to preserve indentation of re-ordered includes. This cleans up the include ordering without changing any other style. Use the following command to run `clang-format`: $ git ls-files -z -- \ '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' | egrep -z -v '(Lexer|Parser|ParserHelper)\.' | egrep -z -v '^Source/cm_sha2' | egrep -z -v '^Source/(kwsys|CursesDialog/form)/' | egrep -z -v '^Utilities/(KW|cm).*/' | egrep -z -v '^Tests/Module/GenerateExportHeader' | egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' | xargs -0 clang-format -i This selects source files that do not come from a third-party. Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
* Fix auto export symbols for Dlls containing /bigobj for 64bit builds.Bill Hoffman2015-11-191-1/+1
| | | | | | | This fixes a bug where 64 bit builds with /bigobj incorrectly determined that the object files were not 64 bit. This manifested itself with printf type functions showing up as undefined because the leading underscore was being removed and should not be removed.
* De-duplicate symbols listed in generated module definition filesBill Hoffman2015-11-181-20/+41
| | | | | | | MS tools have a limit on the number of symbols that can be listed in a `.def` file. If multiple `.obj` files provide a symbol then avoid listing it more than once in the generated `.def` file to avoid counting toward the limit.
* Windows: Fix 64-bit DLL module definition file generation on VS 2015Bill Hoffman2015-09-141-4/+15
| | | | | | | | With 64-bit Windows builds, there is no need to remove the leading underscore from all the symbols. This is because it does not have one in the .obj file unless it is really in the name. This did not cause any trouble until VS 2015 which has some system functions that have a leading underscore that end up in the .def file.
* bindexplib: Add support for "/bigobj" format objectsBill Hoffman2015-07-061-118/+176
|
* bindexplib: Fix treatment of some symbolsBill Hoffman2015-07-061-3/+16
|
* bindexplib: Teach DumpFile to return errorsBill Hoffman2015-07-061-7/+10
| | | | This will allow callers to know if it worked.
* bindexplib: Build source as part of CMakeLibBill Hoffman2015-07-061-4/+7
|
* bindexplib: Wrap long linesBill Hoffman2015-07-061-11/+22
|
* bindexplib: Drop code that CMake does not needBill Hoffman2015-07-061-425/+8
|
* bindexplib: Add copyright/license notice blockBill Hoffman2015-07-061-0/+18
|
* bindexplib: Import original implementation from CERNBill Hoffman2015-07-061-0/+739
Download the original implementation provided by root.cern.ch with the following session: $ wget https://raw.githubusercontent.com/gordonwatts/root-vc-port/f0ee59af/build/win/bindexplib/bindexplib.cxx $ sha1sum bindexplib.cxx fa6efafb2c58a0644bd0f6a56fe02ee0d55c7fcd bindexplib.cxx $ sed -i 's/ *$//;s/'$'\t''/ /' bindexplib.cxx