From: <ai...@us...> - 2009-05-01 22:49:10
|
Revision: 9873 http://plplot.svn.sourceforge.net/plplot/?rev=9873&view=rev Author: airwin Date: 2009-05-01 22:49:09 +0000 (Fri, 01 May 2009) Log Message: ----------- Make changes to follow what is done for Fortran and Ada for CMake-2.6.x. The result is that D examples now build properly in the build tree with all rpath issues automatically taken care of on Linux. Modified Paths: -------------- trunk/cmake/modules/CMakeDCompiler.cmake.in trunk/cmake/modules/CMakeDInformation.cmake Modified: trunk/cmake/modules/CMakeDCompiler.cmake.in =================================================================== --- trunk/cmake/modules/CMakeDCompiler.cmake.in 2009-05-01 18:42:33 UTC (rev 9872) +++ trunk/cmake/modules/CMakeDCompiler.cmake.in 2009-05-01 22:49:09 UTC (rev 9873) @@ -40,6 +40,7 @@ ELSE(UNIX) SET(CMAKE_D_OUTPUT_EXTENSION .obj) ENDIF(UNIX) +SET(CMAKE_D_OUTPUT_EXTENSION_REPLACE 1) # save the size of void* in case where cache is removed # and the this file is still around #SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@) Modified: trunk/cmake/modules/CMakeDInformation.cmake =================================================================== --- trunk/cmake/modules/CMakeDInformation.cmake 2009-05-01 18:42:33 UTC (rev 9872) +++ trunk/cmake/modules/CMakeDInformation.cmake 2009-05-01 22:49:09 UTC (rev 9873) @@ -40,14 +40,74 @@ INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_D}) ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_D) -# for most systems a module is the same as a shared library -# so unless the variable CMAKE_MODULE_EXISTS is set just -# copy the values from the LIBRARY variables -IF(NOT CMAKE_MODULE_EXISTS) - SET(CMAKE_SHARED_MODULE_D_FLAGS ${CMAKE_SHARED_LIBRARY_D_FLAGS}) - SET(CMAKE_SHARED_MODULE_CREATE_D_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS}) -ENDIF(NOT CMAKE_MODULE_EXISTS) +# Create a set of shared library variable specific to D +# For 90% of the systems, these are the same flags as the C versions +# so if these are not set just copy the flags from the c version +IF(NOT CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS) + SET(CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS) +IF(NOT CMAKE_SHARED_LIBRARY_D_FLAGS) + SET(CMAKE_SHARED_LIBRARY_D_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_D_FLAGS) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_D_FLAGS) + SET(CMAKE_SHARED_LIBRARY_LINK_D_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_D_FLAGS) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG_SEP) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG_SEP) + +IF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_D_FLAG) + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_D_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_D_FLAG) + +# repeat for modules +IF(NOT CMAKE_SHARED_MODULE_CREATE_D_FLAGS) + SET(CMAKE_SHARED_MODULE_CREATE_D_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_CREATE_D_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_D_FLAGS) + SET(CMAKE_SHARED_MODULE_D_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_D_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_D_FLAG) + SET(CMAKE_SHARED_MODULE_RUNTIME_D_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_D_FLAG) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_D_FLAG_SEP) + SET(CMAKE_SHARED_MODULE_RUNTIME_D_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_D_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_D_FLAG) + SET(CMAKE_EXECUTABLE_RUNTIME_D_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_D_FLAG) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_D_FLAG_SEP) + SET(CMAKE_EXECUTABLE_RUNTIME_D_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG_SEP}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_D_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RPATH_LINK_D_FLAG) + SET(CMAKE_EXECUTABLE_RPATH_LINK_D_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_D_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RPATH_LINK_D_FLAG) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_D_WITH_RUNTIME_PATH) + SET(CMAKE_SHARED_LIBRARY_LINK_D_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_D_WITH_RUNTIME_PATH) + +IF(NOT CMAKE_INCLUDE_FLAG_D) + SET(CMAKE_INCLUDE_FLAG_D ${CMAKE_INCLUDE_FLAG_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_D) + +IF(NOT CMAKE_INCLUDE_FLAG_SEP_D) + SET(CMAKE_INCLUDE_FLAG_SEP_D ${CMAKE_INCLUDE_FLAG_SEP_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_SEP_D) + SET (CMAKE_D_FLAGS "$ENV{CFLAGS} ${CMAKE_D_FLAGS_INIT}" CACHE STRING "Flags for D compiler.") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |