Fix an infinite loop when first sending a message to a class that has a hidden class.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35875 72102866-910b-0410-8b05-ffd578937521
Fix lookup of properties after getting their attributes.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35876 72102866-910b-0410-8b05-ffd578937521
Add CMake build system for libobjc2.  This will replace the existing build
systems after some further testing.

Currently, we have three build systems for libobjc2:

- GNUmakefile, which provides a number of options but not very cleanly (i.e.
  the only way of knowing what they are is to read the source) and doesn't
  correctly build the Objective-C++ runtime.
- Makefile, which works correctly for a single configuration, but requires
  tweaking by hand to build others.
- Makefile.clang, which is experimental, doesn't really work, and confuses
  people.

The new CMake system:

- Correctly installs in a GNUstep location if one exists, or in a system
  location otherwise.  This is configurable at build time.
- Provides inspectable options for all of the configuration choices (run ccmake
  to see them all)
- Easily supports cross-compilation and out-of-tree builds
- Is easy to extend and inspect
- Automatically builds the LLVM optimisations (which already use CMake, as it's
  the only clean way of building LLVM optimisations out of tree) and can be
  easily configured not to if they are not required.
- Will build a single libobjc.so for platforms that provide a separate C++
  runtime and a separate libobjcxx for ones that don't.
- Can generate build files for make, ninja, XCode, Eclipse, and Visual Studio

For those unfamiliar with CMake, the best way of building is an out-of-tree
build.  For the simplest case, it's just a matter of:

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo -E make install

If you wish to edit any of the configuration options, the easiest way is to run
ccmake instead of cmake.  You can also run ccmake . from the build directory to
edit the options after initial configuration.

For faster builds , try using ninja instead of make.  Add -G Ninja to the
[c]cmake command line and then run ninja instead of make.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35885 72102866-910b-0410-8b05-ffd578937521
Updated WIP announcement for 1.7.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35886 72102866-910b-0410-8b05-ffd578937521
Remove the non-functional Makefile.clang



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35887 72102866-910b-0410-8b05-ffd578937521
Remove non-functional script for doing in-place builds of the LLVM optimisations.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35888 72102866-910b-0410-8b05-ffd578937521
Fix header installation location.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35889 72102866-910b-0410-8b05-ffd578937521
Actually fix header install locations...



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35890 72102866-910b-0410-8b05-ffd578937521
Change how installation location is detected, as per Quentin's suggestion.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35891 72102866-910b-0410-8b05-ffd578937521
Target i586 on i686 with clang.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35892 72102866-910b-0410-8b05-ffd578937521
Revert r35794, which broke the Makefile by introducing GNUisms.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35893 72102866-910b-0410-8b05-ffd578937521
Handle the case where the compiler generates the exception table entries in the wrong order.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35894 72102866-910b-0410-8b05-ffd578937521
Fix merging CFLAGS.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35895 72102866-910b-0410-8b05-ffd578937521
Add optimised special-case property function.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35900 72102866-910b-0410-8b05-ffd578937521
Added helper function for C++ non-POD type atomic properties.
Fixed prototypes of specialised property functions.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35902 72102866-910b-0410-8b05-ffd578937521
Specify the current runtime version to target if the compiler supports this
flag.  This means that the .m files in the runtime will take advantage of
features of this runtime when compiled with a recent clang.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35903 72102866-910b-0410-8b05-ffd578937521
Correctly pass the LLVM version in to the LLVM passes as they are built.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35904 72102866-910b-0410-8b05-ffd578937521
Add CPack configuration to CMakeLists.txt.  RPMs, DEBs and tarballs can now be built directly from the build system.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc2/trunk@35907 72102866-910b-0410-8b05-ffd578937521
objc_layout_finish_structure