summaryrefslogtreecommitdiffstats
path: root/Tests/ObjectLibrary
Commit message (Collapse)AuthorAgeFilesLines
* add_library: Allow arbitrary non-linked sources in OBJECT librariesBrad King2014-07-092-1/+13
| | | | | | | | | | | Loosen this restriction on OBJECT libraries to allow source files of any name to be generated by custom commands or listed for reference in IDE projects so long as they would not affect linking of a normal library. Update the rejection message to be more specific about the looser restriction. Extend the ObjectLibrary test to cover a ".cmake" file generated by a custom command in an OBJECT library.
* Tests: Fix broken dependency in ObjectLibrary testBrad King2014-07-071-1/+1
| | | | The add_custom_command DEPENDS option needs a full path.
* Tests: Resolve TODO comment left in ObjectLibrary testBrad King2014-07-072-8/+2
| | | | | We now have a generic way to add -fPIC without explicitly modifying CMAKE_C_FLAGS, so use it.
* Ninja: Add order-only dependencies to link commands (#14728)Ben Boeckel2014-07-011-0/+6
| | | | | | | | | | | | | A library or executable target that consists only of a reference to an object library may have no sources to compile or custom commands to run. The command in the target is the link (or archive) command. Add missing order-only dependencies to link commands so that target ordering dependencies are satisfied for it without depending on an intermediate compilation rule. Extend the ObjectLibrary test to cover this case. Co-Author: Brad King <brad.king@kitware.com>
* Make ExportLanguages a subtest of the ObjectLibrary testStephen Kelly2013-10-245-0/+33
| | | | | | It was a subtest of the RunCMake.ObjectLibrary test. However, we need to test a build with ExternalProject after running CMake, which RunCMake tests do not do.
* Make sure INTERFACE properties work with OBJECT libraries.Stephen Kelly2013-02-084-6/+23
|
* Whitelist target types in target_{include_directories,compile_definitions}Stephen Kelly2013-02-081-1/+1
| | | | | Setting include directories or compile definitions on a target created with add_custom_target does not make sense.
* Tests/ObjectLibrary: Do not enable CXX in subdirectoriesBrad King2012-08-202-2/+2
| | | | | | | | In commit b237dbd8 (Xcode: Fix object library references in multi-project trees, 2012-08-03) we accidentally enabled CXX in the subdiretories of this test by invoking project() with only one argument. The top-level directory of the test enables only C, so do this in the subdirectories too.
* Xcode: Fix object library references in multi-project trees (#13452)Brad King2012-08-032-0/+2
| | | | | | | | | | | | | | | | | In cmGlobalXCodeGenerator::Generate we generate a .xcodeproj for each directory in the tree containing a project() command. First we iteratively use SetGenerationRoot to add "ALL_BUILD" and other targets to each project. This leaves "CurrentProject" set to the last project when we invoke cmGlobalGenerator::Generate, which is not the same as the top-level project if any subdirectories invoke the project() command. When cmGlobalGenerator::Generate reaches CreateGeneratorTargets it constructs cmGeneratorTarget and calls ComputeTargetObjects exactly once per target. In this context the value of CurrentProject is undefined so we cannot pass it to GetObjectsNormalDirectory. Use "$(PROJECT_NAME)" instead so it will adapt automatically to each project. Also teach Tests/ObjectLibrary to cover this case.
* Fix ObjectLibrary test on WatcomBrad King2012-03-204-12/+12
| | | | | | | | | | | | | | The Watcom compiler interprets "-DB" as option -db generate browsing information so define "A_DEF" and "B_DEF" instead of just "A" and "B". Skip CMAKE_SHARED_LIBRARY_C_FLAGS for Watcom because it is set to -bd build Dynamic link library which adds a DLL entry point to each object.
* Test OBJECT library use without other sourcesBrad King2012-03-165-0/+64
| | | | | | | | | | | | Reference OBJECT libraries for inclusion in targets that have no other sources to verify that the linker language propagates correctly from the object libraries. Test with a STATIC library, a SHARED library, and an EXECUTABLE target. Use the static and shared libraries each in executables that end up using the object library symbols. In VS 6, 7, and 7.1 add a dummy object file to convince the IDE to build the targets without sources. In Xcode add a dummy source file to convince it to build targets without sources.
* Test OBJECT library success casesBrad King2012-03-1613-0/+110
Add "ObjectLibrary" test to build and use OBJECT libraries. Build multiple object libraries in separate directories with different flags. Use a custom command to generate a source file in one OBJECT library. Reference the OBJECT libraries for inclusion in a STATIC library, a SHARED library, and an EXECUTABLE target. Use the static and shared libraries each in executables that end up using the object library symbols. Verify that object library symbols are exported from the shared library.