| From 7982ecebe1c1c41e82779a65fa2d93f19ffd755f Mon Sep 17 00:00:00 2001 |
| From: Yegor Yefremov <yegorslists@googlemail.com> |
| Date: Wed, 5 Feb 2020 12:28:44 +0100 |
| Subject: [PATCH] CMake: fix object library usage |
| |
| Object libraries cannot be use in target_link_libraries() command |
| as they are no normal binary files like *.a or *.so but a collection |
| of object files. |
| |
| See add_library() definition for details. |
| |
| Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> |
| --- |
| CMakeLists.txt | 9 ++++----- |
| 1 file changed, 4 insertions(+), 5 deletions(-) |
| |
| diff --git a/CMakeLists.txt b/CMakeLists.txt |
| index af8010f..028a7bb 100644 |
| --- a/CMakeLists.txt |
| +++ b/CMakeLists.txt |
| @@ -83,8 +83,7 @@ target_compile_definitions(libninja PRIVATE _WIN32_WINNT=0x0601 __USE_MINGW_ANSI |
| endif() |
| |
| # Main executable is library plus main() function. |
| -add_executable(ninja src/ninja.cc) |
| -target_link_libraries(ninja PRIVATE libninja libninja-re2c) |
| +add_executable(ninja src/ninja.cc $<TARGET_OBJECTS:libninja> $<TARGET_OBJECTS:libninja-re2c>) |
| |
| # Tests all build into ninja_test executable. |
| add_executable(ninja_test |
| @@ -106,11 +105,12 @@ add_executable(ninja_test |
| src/subprocess_test.cc |
| src/test.cc |
| src/util_test.cc |
| + $<TARGET_OBJECTS:libninja> |
| + $<TARGET_OBJECTS:libninja-re2c> |
| ) |
| if(WIN32) |
| target_sources(ninja_test PRIVATE src/includes_normalize_test.cc src/msvc_helper_test.cc) |
| endif() |
| -target_link_libraries(ninja_test PRIVATE libninja libninja-re2c) |
| |
| foreach(perftest |
| build_log_perftest |
| @@ -120,8 +120,7 @@ foreach(perftest |
| hash_collision_bench |
| manifest_parser_perftest |
| ) |
| - add_executable(${perftest} src/${perftest}.cc) |
| - target_link_libraries(${perftest} PRIVATE libninja libninja-re2c) |
| + add_executable(${perftest} src/${perftest}.cc $<TARGET_OBJECTS:libninja> $<TARGET_OBJECTS:libninja-re2c>) |
| endforeach() |
| |
| enable_testing() |
| -- |
| 2.17.0 |