On 04.09.2013 20:42, Michael Wild wrote:
> Dear all
> 
> no matter when I try to set CMAKE_{C,CXX}_OUTPUT_EXTENSION, on my Linux
> box using the GNU Makefiles generator the resulting object files always
> have a .o extension. I tried setting it in the cache, before and after
> the project() call. Nothing helps.
> 
> Is this a known issue? I tried trawling the archives, but only found
> references to IDE generators ignoring this setting.
> 
> Thanks for any help
> 
> Michael
> 

Seems like commit 422dc631b by Alex kind of broke the user's ability to specify
CMAKE_<LANG>_OUTPUT_NAME by unconditionally setting it to .o on UNIX and .obj
otherwise. The only solution I can see is to provide/override platform+compiler
specific files which get loaded by CMake<LANG>Information.cmake like this:

-------<8--------

cmake_minimum_required(VERSION 2.8)
project(output_extension NONE)

# create fake system- and compiler specific file
file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/cmake/Platform")
foreach(id GNU HP Intel MIPSpro PathScale PGI SunPro VisualAge XL)
  foreach(l C CXX)
    file(WRITE 
"${PROJECT_BINARY_DIR}/cmake/Platform/${CMAKE_SYSTEM_NAME}-${id}-${l}.cmake"
      # ====> SET EXTENSION HERE <=====
      "set(CMAKE_${l}_OUTPUT_EXTENSION .MyFancyExtension)\n"
      
"include(\"${CMAKE_ROOT}/Modules/Platform/\${CMAKE_SYSTEM_NAME}-\${CMAKE_${l}_COMPILER_ID}-${l}.cmake\"\n"
      "  OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)\n"
      "if(NOT _INCLUDED_FILE)\n"
      "  
INCLUDE(\"${CMAKE_ROOT}/Modules/Platform/\${CMAKE_SYSTEM_NAME}-\${CMAKE_BASE_NAME}.cmake\"\n"
      "    OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)\n"
      "endif()\n"
      "if(NOT _INCLUDED_FILE)\n"
      "  INCLUDE(\"${CMAKE_ROOT}/Modules/Platform/\${CMAKE_SYSTEM_NAME}.cmake\" 
OPTIONAL)\n"
      "endif()\n"
      )
  endforeach()
endforeach()
list(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_BINARY_DIR}/cmake")

cmake_policy(PUSH)
cmake_policy(SET CMP0017 OLD)
enable_language(C)
enable_language(CXX)
cmake_policy(POP)

-------<8--------

Michael
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to