|
@@ -0,0 +1,56 @@
|
|
|
+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
|