From: <ai...@us...> - 2007-10-22 17:14:53
|
Revision: 7967 http://plplot.svn.sourceforge.net/plplot/?rev=7967&view=rev Author: airwin Date: 2007-10-22 10:14:54 -0700 (Mon, 22 Oct 2007) Log Message: ----------- General clean up of get-drv-info dependency logic including executable suffix issues which were problematic before. Modified Paths: -------------- trunk/drivers/CMakeLists.txt Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2007-10-22 15:44:51 UTC (rev 7966) +++ trunk/drivers/CMakeLists.txt 2007-10-22 17:14:54 UTC (rev 7967) @@ -55,6 +55,8 @@ INSTALL_RPATH "${get-drv-info_RPATH}" BUILD_WITH_INSTALL_RPATH ON ) + + get_target_property(get-drv-info_LOCATION get-drv-info LOCATION) foreach(SOURCE_ROOT_NAME ${DRIVERS_LIST}) #message("${SOURCE_ROOT_NAME}_SOURCE = ${${SOURCE_ROOT_NAME}_SOURCE}") @@ -103,31 +105,26 @@ SUFFIX ".so" ) endif(USE_RPATH) -# This is a clumsy way to do it since we have to put in dependencies on -# get-drv-info so it will always be built first, but the better -# alternative below does not work (probably a bug in 2.4.2). - add_dependencies(${SOURCE_ROOT_NAME} get-drv-info) + get_target_property( + ${SOURCE_ROOT_NAME}_LOCATION + ${SOURCE_ROOT_NAME} + LOCATION + ) add_custom_command( - TARGET + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + COMMAND ${get-drv-info_LOCATION} ${SOURCE_ROOT_NAME} - POST_BUILD - COMMAND - ${CMAKE_CURRENT_BINARY_DIR}/get-drv-info - ${SOURCE_ROOT_NAME} > ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + DEPENDS + ${get-drv-info_LOCATION} + ${${SOURCE_ROOT_NAME}_LOCATION} ) -# Should work, but does not (for cmake 2.4.2, at least) so comment out. -# add_custom_command( -# OUTPUT -# ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc -# COMMAND -# ${CMAKE_CURRENT_BINARY_DIR}/get-drv-info -# ${SOURCE_ROOT_NAME} -# > ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc -# DEPENDS -# ${CMAKE_CURRENT_BINARY_DIR}/get-drv-info -# ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.so -# ) + add_custom_target( + ${SOURCE_ROOT_NAME}_CHECK ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + ) + install(TARGETS ${SOURCE_ROOT_NAME} DESTINATION ${DRV_DIR}) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-10-29 21:54:57
|
Revision: 7989 http://plplot.svn.sourceforge.net/plplot/?rev=7989&view=rev Author: airwin Date: 2007-10-29 14:54:59 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Use the ".dll" suffix for the dynamic device name in the Cygwin case so the libltdl can find the dynamic device file on that platform. For every other platform continue to use the ".so" suffix (which so far works on at least Linux and Mac OS X). Modified Paths: -------------- trunk/drivers/CMakeLists.txt Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2007-10-29 21:27:42 UTC (rev 7988) +++ trunk/drivers/CMakeLists.txt 2007-10-29 21:54:59 UTC (rev 7989) @@ -85,15 +85,24 @@ ) # Our implementation of dynamic loading using libltdl assumes # the prefix should always be nothing (rather than lib) and the suffix - # should always be ".so" regardless of platform so that libltdl can - # always find the result. + # should be set in a platform-dependent manner in order for libltdl + # to find the dynamic device. + if(CYGWIN) + # strace showed that .dll was a must for libltdl on Cygwin. + set(DYNAMIC_SUFFIX ".dll") + else(CYGWIN) + # So far this works on all non-Cygwin systems, but only Linux and + # Mac OS X have been tested so far. + set(DYNAMIC_SUFFIX ".so") + endif(CYGWIN) + #message("${SOURCE_ROOT_NAME}_RPATH = ${${SOURCE_ROOT_NAME}_RPATH}") if(USE_RPATH) set_target_properties( ${SOURCE_ROOT_NAME} PROPERTIES PREFIX "" - SUFFIX ".so" + SUFFIX ${DYNAMIC_SUFFIX} INSTALL_RPATH "${${SOURCE_ROOT_NAME}_RPATH}" ) @@ -102,7 +111,7 @@ ${SOURCE_ROOT_NAME} PROPERTIES PREFIX "" - SUFFIX ".so" + SUFFIX ${DYNAMIC_SUFFIX} ) endif(USE_RPATH) get_target_property( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-10 19:14:35
|
Revision: 8128 http://plplot.svn.sourceforge.net/plplot/?rev=8128&view=rev Author: airwin Date: 2008-01-10 11:14:38 -0800 (Thu, 10 Jan 2008) Log Message: ----------- Tweak commentary. Modified Paths: -------------- trunk/drivers/CMakeLists.txt Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2008-01-09 17:42:08 UTC (rev 8127) +++ trunk/drivers/CMakeLists.txt 2008-01-10 19:14:38 UTC (rev 8128) @@ -68,6 +68,16 @@ #message("${SOURCE_ROOT_NAME}_COMPILE_FLAGS = ${${SOURCE_ROOT_NAME}_COMPILE_FLAGS}") endif(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) add_library(${SOURCE_ROOT_NAME} MODULE ${${SOURCE_ROOT_NAME}_SOURCE}) + # ${SOURCE_ROOT_NAME}_LINK_FLAGS is ideally a list of the full path names + # to libraries determined with find_library. However, the list can also + # include link flags such as the -L and -l form of specifying libraries, + # but that way of doing things only works on Unix, and even for Unix, + # cmake does not correctly set the rpath for the build tree results + # for non-standard locations with the -L and -l forms. + #message("${SOURCE_ROOT_NAME}_LINK_FLAGS = ${${SOURCE_ROOT_NAME}_LINK_FLAGS}") + # ${SOURCE_ROOT_NAME}_TARGETS is a list of PLplot CMake targets that the + # device driver depends on. + #message("${SOURCE_ROOT_NAME}_TARGETS = ${${SOURCE_ROOT_NAME}_TARGETS}") target_link_libraries( ${SOURCE_ROOT_NAME} plplot${LIB_TAG} @@ -75,8 +85,10 @@ ${${SOURCE_ROOT_NAME}_LINK_FLAGS} ${${SOURCE_ROOT_NAME}_TARGETS} ) - #message("${SOURCE_ROOT_NAME}_LINK_FLAGS = ${${SOURCE_ROOT_NAME}_LINK_FLAGS}") - #message("${SOURCE_ROOT_NAME}_TARGETS = ${${SOURCE_ROOT_NAME}_TARGETS}") + # ${SOURCE_ROOT_NAME}_RPATH originally set in cmake/modules files for + # each driver in ${DRIVERS_LIST}. This is only used for the + # install-tree rpath since cmake handles the build-tree rpath + # automatically (so long as full pathnames to libraries are used). set( ${SOURCE_ROOT_NAME}_RPATH ${${SOURCE_ROOT_NAME}_RPATH} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |