From: <ai...@us...> - 2009-03-11 02:48:10
|
Revision: 9712 http://plplot.svn.sourceforge.net/plplot/?rev=9712&view=rev Author: airwin Date: 2009-03-11 02:48:05 +0000 (Wed, 11 Mar 2009) Log Message: ----------- Implement a TEST_DYNDRIVERS option (defaults to OFF) for building and running get-drv-info. Modified Paths: -------------- trunk/drivers/CMakeLists.txt Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2009-03-11 02:42:36 UTC (rev 9711) +++ trunk/drivers/CMakeLists.txt 2009-03-11 02:48:05 UTC (rev 9712) @@ -20,75 +20,78 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA install( -FILES README.drivers README.wxwidgets -DESTINATION ${DOC_DIR} -) + FILES README.drivers README.wxwidgets + DESTINATION ${DOC_DIR} + ) #qt.h only useful if anyone wants to build a Qt application with the Qt widget driver if(PLD_qtwidget) -install( -FILES qt.h -DESTINATION ${INCLUDE_DIR} -) + install( + FILES qt.h + DESTINATION ${INCLUDE_DIR} + ) endif(PLD_qtwidget) if(ENABLE_DYNDRIVERS) - set_source_files_properties( - get-drv-info.c - PROPERTIES COMPILE_FLAGS "-I${LTDL_INCLUDE_DIR} -DUSINGDLL" - ) - include_directories( - ${CMAKE_SOURCE_DIR}/include - ${CMAKE_SOURCE_DIR}/lib/qsastime - ${CMAKE_SOURCE_DIR}/lib/nistcd - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}/include - ) + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/lib/qsastime + ${CMAKE_SOURCE_DIR}/lib/nistcd + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/include + ) - if(NOT CMAKE_CROSSCOMPILING) - add_executable(get-drv-info get-drv-info.c) - target_link_libraries(get-drv-info - plplot${LIB_TAG} - ${LTDL_LIBRARIES} - ) - set(get-drv-info_RPATH - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR}/src - ${CMAKE_BINARY_DIR}/lib/csa - ${CMAKE_BINARY_DIR}/lib/nn - ${CMAKE_BINARY_DIR}/lib/qsastime - ${libplplot${LIB_TAG}_RPATH} - ) - - set_target_properties( - get-drv-info - PROPERTIES - INSTALL_RPATH "${get-drv-info_RPATH}" - BUILD_WITH_INSTALL_RPATH ON - ) - else(NOT CMAKE_CROSSCOMPILING) - set(IMPORT_EXECUTABLES ${CMAKE_NATIVE_BINARY_DIR}/drivers/ImportExecutables.cmake) - include(${IMPORT_EXECUTABLES}) - endif(NOT CMAKE_CROSSCOMPILING) + option(TEST_DYNDRIVERS "Test dynamic drivers" OFF) + if(TEST_DYNDRIVERS) + set_source_files_properties( + get-drv-info.c + PROPERTIES COMPILE_FLAGS "-I${LTDL_INCLUDE_DIR} -DUSINGDLL" + ) + + if(NOT CMAKE_CROSSCOMPILING) + add_executable(get-drv-info get-drv-info.c) + target_link_libraries(get-drv-info + plplot${LIB_TAG} + ${LTDL_LIBRARIES} + ) + set(get-drv-info_RPATH + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_BINARY_DIR}/src + ${CMAKE_BINARY_DIR}/lib/csa + ${CMAKE_BINARY_DIR}/lib/nn + ${CMAKE_BINARY_DIR}/lib/qsastime + ${libplplot${LIB_TAG}_RPATH} + ) + + set_target_properties( + get-drv-info + PROPERTIES + INSTALL_RPATH "${get-drv-info_RPATH}" + BUILD_WITH_INSTALL_RPATH ON + ) + else(NOT CMAKE_CROSSCOMPILING) + set(IMPORT_EXECUTABLES ${CMAKE_NATIVE_BINARY_DIR}/drivers/ImportExecutables.cmake) + include(${IMPORT_EXECUTABLES}) + endif(NOT CMAKE_CROSSCOMPILING) - if(NOT CMAKE_CROSSCOMPILING) - export(TARGETS get-drv-info FILE ${CMAKE_CURRENT_BINARY_DIR}/ImportExecutables.cmake ) - endif(NOT CMAKE_CROSSCOMPILING) + if(NOT CMAKE_CROSSCOMPILING) + export(TARGETS get-drv-info FILE ${CMAKE_CURRENT_BINARY_DIR}/ImportExecutables.cmake ) + endif(NOT CMAKE_CROSSCOMPILING) + endif(TEST_DYNDRIVERS) foreach(SOURCE_ROOT_NAME ${DRIVERS_LIST}) #message("${SOURCE_ROOT_NAME}_SOURCE = ${${SOURCE_ROOT_NAME}_SOURCE}") if(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) set_source_files_properties( - ${${SOURCE_ROOT_NAME}_SOURCE} - PROPERTIES COMPILE_FLAGS "${${SOURCE_ROOT_NAME}_COMPILE_FLAGS} -DUSINGDLL" - ) + ${${SOURCE_ROOT_NAME}_SOURCE} + PROPERTIES COMPILE_FLAGS "${${SOURCE_ROOT_NAME}_COMPILE_FLAGS} -DUSINGDLL" + ) #message("${SOURCE_ROOT_NAME}_COMPILE_FLAGS = ${${SOURCE_ROOT_NAME}_COMPILE_FLAGS}") else(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) set_source_files_properties( - ${${SOURCE_ROOT_NAME}_SOURCE} - PROPERTIES COMPILE_FLAGS "-DUSINGDLL" - ) + ${${SOURCE_ROOT_NAME}_SOURCE} + PROPERTIES COMPILE_FLAGS "-DUSINGDLL" + ) endif(${SOURCE_ROOT_NAME}_COMPILE_FLAGS) if(SOURCE_ROOT_NAME STREQUAL "qt" AND PLD_qtwidget) qt4_wrap_cpp( @@ -98,12 +101,12 @@ ) # message("QT_MOC_OUTFILES = ${QT_MOC_OUTFILES}") set_source_files_properties( - ${QT_MOC_OUTFILES} - PROPERTIES GENERATED "ON" - ) + ${QT_MOC_OUTFILES} + PROPERTIES GENERATED "ON" + ) add_library(${SOURCE_ROOT_NAME} MODULE ${${SOURCE_ROOT_NAME}_SOURCE} ${QT_MOC_OUTFILES}) else(SOURCE_ROOT_NAME STREQUAL "qt" AND PLD_qtwidget) - add_library(${SOURCE_ROOT_NAME} MODULE ${${SOURCE_ROOT_NAME}_SOURCE}) + add_library(${SOURCE_ROOT_NAME} MODULE ${${SOURCE_ROOT_NAME}_SOURCE}) endif(SOURCE_ROOT_NAME STREQUAL "qt" AND PLD_qtwidget) # ${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 @@ -116,22 +119,22 @@ # device driver depends on. #message("${SOURCE_ROOT_NAME}_TARGETS = ${${SOURCE_ROOT_NAME}_TARGETS}") target_link_libraries( - ${SOURCE_ROOT_NAME} - plplot${LIB_TAG} - ${MATH_LIB} - ${${SOURCE_ROOT_NAME}_LINK_FLAGS} - ${${SOURCE_ROOT_NAME}_TARGETS} - ) + ${SOURCE_ROOT_NAME} + plplot${LIB_TAG} + ${MATH_LIB} + ${${SOURCE_ROOT_NAME}_LINK_FLAGS} + ${${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 - ${LIB_DIR} - ${${SOURCE_ROOT_NAME}_RPATH} - ${libplplot${LIB_TAG}_RPATH} - ) + ${SOURCE_ROOT_NAME}_RPATH + ${LIB_DIR} + ${${SOURCE_ROOT_NAME}_RPATH} + ${libplplot${LIB_TAG}_RPATH} + ) # Our implementation of dynamic loading using libltdl assumes # the prefix should always be nothing (rather than lib) and the suffix # should be set in a platform-dependent manner in order for libltdl @@ -148,47 +151,49 @@ #message("${SOURCE_ROOT_NAME}_RPATH = ${${SOURCE_ROOT_NAME}_RPATH}") if(USE_RPATH) set_target_properties( - ${SOURCE_ROOT_NAME} - PROPERTIES - PREFIX "" - SUFFIX ${DYNAMIC_SUFFIX} - INSTALL_RPATH - "${${SOURCE_ROOT_NAME}_RPATH}" - ) + ${SOURCE_ROOT_NAME} + PROPERTIES + PREFIX "" + SUFFIX ${DYNAMIC_SUFFIX} + INSTALL_RPATH + "${${SOURCE_ROOT_NAME}_RPATH}" + ) else(USE_RPATH) set_target_properties( - ${SOURCE_ROOT_NAME} - PROPERTIES - PREFIX "" - SUFFIX ${DYNAMIC_SUFFIX} - ) + ${SOURCE_ROOT_NAME} + PROPERTIES + PREFIX "" + SUFFIX ${DYNAMIC_SUFFIX} + ) endif(USE_RPATH) - get_target_property( - ${SOURCE_ROOT_NAME}_LOCATION - ${SOURCE_ROOT_NAME} - LOCATION - ) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc - COMMAND get-drv-info - ${SOURCE_ROOT_NAME} - > ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc - DEPENDS - ${${SOURCE_ROOT_NAME}_LOCATION} - ) - add_custom_target( - ${SOURCE_ROOT_NAME}_CHECK ALL - DEPENDS - ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc - ) - # Workaround CMake 2-level make recursion issue for parallel builds. - add_dependencies(${SOURCE_ROOT_NAME}_CHECK ${SOURCE_ROOT_NAME}) + if(TEST_DYNDRIVERS) + get_target_property( + ${SOURCE_ROOT_NAME}_LOCATION + ${SOURCE_ROOT_NAME} + LOCATION + ) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + COMMAND get-drv-info + ${SOURCE_ROOT_NAME} + > ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + DEPENDS + ${${SOURCE_ROOT_NAME}_LOCATION} + ) + add_custom_target( + ${SOURCE_ROOT_NAME}_CHECK ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + ) + # Workaround CMake 2-level make recursion issue for parallel builds. + add_dependencies(${SOURCE_ROOT_NAME}_CHECK ${SOURCE_ROOT_NAME}) + endif(TEST_DYNDRIVERS) install(TARGETS ${SOURCE_ROOT_NAME} DESTINATION ${DRV_DIR}) install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc - DESTINATION ${DRV_DIR} - ) + FILES ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc + DESTINATION ${DRV_DIR} + ) endforeach(SOURCE_ROOT_NAME ${DRIVERS_LIST}) endif(ENABLE_DYNDRIVERS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |