MantisBT - CMake
View Issue Details
0011674CMakeCMakepublic2011-01-10 08:332011-01-12 08:16
Harald Pohl 
Brad King 
normalminoralways
closedfixed 
IntelWindowsXP
CMake-2-8 
CMake 2.8.4CMake 2.8.4 
0011674: 'CMakeCXXInformation.cmake' always overrides 'CMAKE_CXX_ARCHIVE_CREATE'
I tried to use cmake for my ARM Keil CXX project, which is seperated into a very large library and a application project. First, everything works fine, but the source file count of my library increases that much, that windows was unable to handle the whole link command in one line. Therefore I change my compiler definition by unsetting 'CMAKE_CXX_CREATE_STATIC_LIBRARY' and setting
  CMAKE_C_ARCHIVE_CREATE,
  CMAKE_C_ARCHIVE_APPEND,
  CMAKE_CXX_ARCHIVE_CREATE,
  CMAKE_CXX_ARCHIVE_APPEND

But all my values will be always overwritten by 'CMakeCInformation.cmake' or 'CMakeCXXInformation.cmake' by:

167: SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
168: SET(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
169: SET(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")

All other variables, which are set in this file, are checked for content first, exept these three. Is there a different way to prefent this? And if it's a bug, I suggest the following solution:

IF(NOT CMAKE_C_ARCHIVE_CREATE)
  SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
ENDIF(NOT CMAKE_C_ARCHIVE_CREATE)

IF(NOT CMAKE_C_ARCHIVE_APPEND)
  SET(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
ENDIF(NOT CMAKE_C_ARCHIVE_APPEND)

IF(NOT CMAKE_C_ARCHIVE_FINISH)
  SET(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
ENDIF(NOT CMAKE_C_ARCHIVE_FINISH)










No tags attached.
Issue History
2011-01-10 08:33Harald PohlNew Issue
2011-01-10 10:00Brad KingAssigned To => Brad King
2011-01-10 10:00Brad KingStatusnew => assigned
2011-01-10 10:01Brad KingNote Added: 0024530
2011-01-10 10:01Brad KingStatusassigned => closed
2011-01-10 10:01Brad KingResolutionopen => fixed
2011-01-12 08:16David ColeFixed in Version => CMake 2.8.4
2011-01-12 08:16David ColeTarget Version => CMake 2.8.4

Notes
(0024530)
Brad King   
2011-01-10 10:01   
Fixed, thanks:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c2d73c93 [^]