- Add an option to choose between dynamic or static library version of libconfig++
- Add an option to choose linking the runtime against dynamic or static CRT library
This refactoring required to make possible BUILD_BC_LIBS option work
together with options like BUILD_SINGLE_LIB and to build Phobos as
LLVM bytecode too.
- libdruntime-rt-ldc can be built as LLVM bytecode library. This feature
was commented out because of currently irrelevant reason.
- Removed irrelevant modifications of native code library content inside
BUILD_BC_LIBS logic.
- Decoupled BUILD_BC_LIBS logic from basic runtime building logic.
- Add new files and remove unused files.
- Only create .bc files if requested.
(Creating .bc and .obj files at the same time confuses the LIB tool. Maybe a CMake bug....)
- Add references to new commits for Win64 in druntime and phobos.
The Windows linker LINK insists on the .obj extension. The following changes are made:
- CMake uses the same extension as the C compiler
- global.obj_ext_alt (aka .obj) is recognized as objectfile extension
- global.obj_ext_alt is used on Windows
Note: Currently, we are not following a consequent strategy regarding which files to install and which to omit. In the future, we should either always install all of the modules (because they should have version() guards anyway), or omit all the files with paths containing {osx,windows,linux,freebsd} on the other OSes.
Also took the opportunity to rename liblphobos2 to libphobos2-ldc as discussed on IRC, because this highlights the relationship to DMD's libphobos2 better e.g. when browsing through the file system.
As discussed on IRC, Bob has been the default (and recommended) way to build Tango for LDC for quite some time now. Support for it in the CMake-based build system just created a big maintenance burden for (almost) no benefits. Besides, the build system was currently broken anyway.
The makefiles seemed to support building *.bc libs for Tango though, which Bob probably doesn't, which might be worth keeping in mind.