cotire icon indicating copy to clipboard operation
cotire copied to clipboard

Multiple project include same cpp file may cause cotire error.

Open cxxclean opened this issue 8 years ago • 0 comments

Some configuration in my CMakeLists.txt is below:

add_library(server "server/stdafx.h" ${server_sourcelist} "protocol/c++/msg-server_to_server.pb.cc")
add_executable(gameserver ${gameserver_sourcelist} "protocol/c++/data-db.pb.cc" "protocol/c++/data-notdb.pb.cc" "protocol/c++/msg-game_to_client.pb.cc" "protocol/c++/msg-game_to_db.pb.cc" "protocol/c++/msg-game_to_gate.pb.cc")
add_executable(gateserver ${gateserver_sourcelist} "protocol/c++/data-db.pb.cc" "protocol/c++/msg-game_to_client.pb.cc" "protocol/c++/msg-game_to_gate.pb.cc")
add_executable(dbserver ${dbserver_sourcelist} "protocol/c++/data-db.pb.cc" "protocol/c++/msg-game_to_client.pb.cc" "protocol/c++/msg-game_to_db.pb.cc")
add_executable(robot ${robot_sourcelist} "protocol/c++/data-db.pb.cc" "protocol/c++/msg-game_to_client.pb.cc")

cotire(server)
cotire(gameserver)
cotire(gateserver)
cotire(dbserver)
cotire(robot)

Notice that I have several project include same cpp files such as:

"protocol/c++/data-db.pb.cc"
"protocol/c++/msg-game_to_client.pb.cc"
"protocol/c++/msg-game_to_gate.pb.cc"
......

But cotire seems could not figure out the situation, and it report error, just like below:

CMake Error at CMake/cotire.cmake:2800 (message):
  CXX target gateserver cotired without precompiled header.  Target sources
  already include a precompiled header for target(s) gameserver.  Set target
  property COTIRE_ENABLE_PRECOMPILED_HEADER to FALSE for targets gateserver,
  gameserver to get a workable build system.
Call Stack (most recent call first):
  CMake/cotire.cmake:3248 (cotire_choose_target_languages)
  CMake/cotire.cmake:3431 (cotire_target)
  CMakeLists.txt:71 (cotire)


CMake Error at CMake/cotire.cmake:2800 (message):
  CXX target dbserver cotired without precompiled header.  Target sources
  already include a precompiled header for target(s) gameserver.  Set target
  property COTIRE_ENABLE_PRECOMPILED_HEADER to FALSE for targets dbserver,
  gameserver to get a workable build system.
Call Stack (most recent call first):
  CMake/cotire.cmake:3248 (cotire_choose_target_languages)
  CMake/cotire.cmake:3431 (cotire_target)
  CMakeLists.txt:72 (cotire)


CMake Error at CMake/cotire.cmake:2800 (message):
  CXX target robot cotired without precompiled header.  Target sources
  already include a precompiled header for target(s) gameserver.  Set target
  property COTIRE_ENABLE_PRECOMPILED_HEADER to FALSE for targets robot,
  gameserver to get a workable build system.
Call Stack (most recent call first):
  CMake/cotire.cmake:3248 (cotire_choose_target_languages)
  CMake/cotire.cmake:3431 (cotire_target)
  CMakeLists.txt:73 (cotire)

cxxclean avatar Dec 02 '17 08:12 cxxclean