Commit 2390f409 authored by bonnell's avatar bonnell
Browse files

Fix plugin development against installed version on Winows.

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@13181 18c085ea-50e0-402c-830e-de6fd14e8384
parent e377a3e2
......@@ -42,6 +42,9 @@
# Tom Fogal, Mon May 3 10:22:15 MDT 2010
# Remove QtScript requirement/installation. We don't use it.
#
# Kathleen Bonnell, Thu Dec 2 15:12:44 MST 2010
# Install moc on Windows. Add all include dirs on Windows.
#
#****************************************************************************/
#
......@@ -77,52 +80,80 @@ IF(NOT "${QT_BIN}" MATCHES "OFF")
# MESSAGE("QT_DIR = ${QT_DIR}")
SET(QT_INCLUDE_DIR ${QT_DIR}/include)
IF(VISIT_MSVC_VERSION AND EXISTS ${QT_DIR}/lib/${VISIT_MSVC_VERSION})
SET(QT_SHAREDLIB_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION} CACHE PATH "Qt library dir" FORCE )
SET(QT_LIBRARY_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION} CACHE PATH "Qt library dir" FORCE )
SET(QT_BINARY_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION} CACHE INTERNAL "" FORCE )
SET(QT_SHAREDLIB_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION}
CACHE PATH "Qt library dir" FORCE )
SET(QT_LIBRARY_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION}
CACHE PATH "Qt library dir" FORCE )
SET(QT_BINARY_DIR ${QT_DIR}/lib/${VISIT_MSVC_VERSION}
CACHE INTERNAL "" FORCE )
ELSEIF(EXISTS ${QT_DIR}/bin)
# Installed QT now puts dll's in bin, but lib's in lib, and one might need
# to look in both places, with dll prefered.
SET(QT_SHAREDLIB_DIR ${QT_DIR}/bin CACHE PATH "Qt shared library dir" FORCE )
# Installed QT now puts dll's in bin, but lib's in lib, and one might need
# to look in both places, with dll prefered.
SET(QT_SHAREDLIB_DIR ${QT_DIR}/bin CACHE PATH "Qt shared library dir"
FORCE )
SET(QT_LIBRARY_DIR ${QT_DIR}/lib CACHE PATH "Qt library dir" FORCE )
SET(QT_BINARY_DIR ${QT_DIR}/bin CACHE INTERNAL "" FORCE )
ELSE()
MESSAGE(SEND_ERROR "Neither ${QT_DIR}/lib/${VISIT_MSVC_VERSION} nor ${QT_DIR}/bin exists.")
MESSAGE(SEND_ERROR "Neither ${QT_DIR}/lib/${VISIT_MSVC_VERSION} nor "
"${QT_DIR}/bin exists.")
ENDIF()
SET(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc.exe)
SET(QT_INCLUDES ${QT_INCLUDE_DIR})
# These might be dlls or libs
SET(QT_WIN_LIBS QtDesigner QtDesignerComponents QtSql QtSvg Qt QtTest QtMain QtAssistantClient QtHelp QtXMLPatterns QtUiTools)
# These might be dlls or libs
SET(QT_WIN_LIBS QtDesigner QtDesignerComponents QtSql QtSvg Qt QtTest
QtMain QtAssistantClient QtHelp QtXMLPatterns QtUiTools)
FOREACH(QTWINLIB ${QT_WIN_LIBS})
STRING(TOUPPER ${QTWINLIB} upper_qtwinlib)
SET(QT_${upper_qtwinlib}_FOUND 1)
SET(QT_${upper_qtwinlib}_INCLUDE_DIR ${QT_INCLUDE_DIR}/${QTWINLIB} CACHE PATH "The Qt ${QTWINLIB} include dir" FORCE)
SET(QT_${upper_qtwinlib}_INCLUDE_DIR ${QT_INCLUDE_DIR}/${QTWINLIB}
CACHE PATH "The Qt ${QTWINLIB} include dir" FORCE)
IF(EXISTS ${QT_${upper_qtwinlib}_INCLUDE_DIR})
SET(QT_INCLUDES ${QT_INCLUDES} ${QT_${upper_qtwinlib}_INCLUDE_DIR})
ENDIF()
IF (EXISTS ${QT_SHAREDLIB_DIR}/${QTWINLIB}4.dll)
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_SHAREDLIB_DIR}/${QTWINLIB}4.dll CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE ${QT_SHAREDLIB_DIR}/${QTWINLIB}4.dll)
SET(QT_${upper_qtwinlib}_LIBRARY
${QT_SHAREDLIB_DIR}/${QTWINLIB}4.dll CACHE STRING
"The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE
${QT_SHAREDLIB_DIR}/${QTWINLIB}4.dll)
ELSEIF (EXISTS ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
SET(QT_${upper_qtwinlib}_LIBRARY
${QT_LIBRARY_DIR}/${QTWINLIB}4.lib CACHE STRING
"The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE
${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
ELSE ()
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_LIBRARY_DIR}/${QTWINLIB}.lib CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE ${QT_LIBRARY_DIR}/${QTWINLIB}.lib)
SET(QT_${upper_qtwinlib}_LIBRARY
${QT_LIBRARY_DIR}/${QTWINLIB}.lib CACHE STRING
"The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE
${QT_LIBRARY_DIR}/${QTWINLIB}.lib)
ENDIF ()
ENDFOREACH(QTWINLIB)
# These are just libs, or the distributed dll is munged.
# These are just libs, or the distributed dll is munged.
SET(QT_WIN_LIBS QtCore QtGui QtOpenGL QtNetwork QtXml)
FOREACH(QTWINLIB ${QT_WIN_LIBS})
STRING(TOUPPER ${QTWINLIB} upper_qtwinlib)
SET(QT_${upper_qtwinlib}_FOUND 1)
SET(QT_${upper_qtwinlib}_INCLUDE_DIR ${QT_INCLUDE_DIR}/${QTWINLIB} CACHE PATH "The Qt ${QTWINLIB} include dir" FORCE)
SET(QT_${upper_qtwinlib}_INCLUDE_DIR ${QT_INCLUDE_DIR}/${QTWINLIB}
CACHE PATH "The Qt ${QTWINLIB} include dir" FORCE)
IF(EXISTS ${QT_${upper_qtwinlib}_INCLUDE_DIR})
SET(QT_INCLUDES ${QT_INCLUDES} ${QT_${upper_qtwinlib}_INCLUDE_DIR})
ENDIF()
IF (EXISTS ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_LIBRARY_DIR}/${QTWINLIB}4.lib
CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE
${QT_LIBRARY_DIR}/${QTWINLIB}4.lib)
ELSE ()
SET(QT_${upper_qtwinlib}_LIBRARY ${QT_LIBRARY_DIR}/${QTWINLIB}.lib CACHE STRING "The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE ${QT_LIBRARY_DIR}/${QTWINLIB}.lib)
SET(QT_${upper_qtwinlib}_LIBRARY
${QT_LIBRARY_DIR}/${QTWINLIB}.lib CACHE STRING
"The Qt ${QTWINLIB} library" FORCE)
SET(QT_${upper_qtwinlib}_LIBRARY_RELEASE
${QT_LIBRARY_DIR}/${QTWINLIB}.lib)
ENDIF ()
ENDFOREACH(QTWINLIB)
......@@ -176,8 +207,13 @@ IF(NOT "${QT_BIN}" MATCHES "OFF")
IF(${H} MATCHES "/include/Qt")
INSTALL(DIRECTORY ${H}
DESTINATION ${VISIT_INSTALLED_VERSION_INCLUDE}/qt/include
FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_WRITE GROUP_READ WORLD_READ
DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
FILE_PERMISSIONS OWNER_WRITE OWNER_READ
GROUP_WRITE GROUP_READ
WORLD_READ
DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
GROUP_WRITE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
PATTERN ".svn" EXCLUDE
)
ENDIF(${H} MATCHES "/include/Qt")
ENDFOREACH(H)
......@@ -186,7 +222,16 @@ IF(NOT "${QT_BIN}" MATCHES "OFF")
IF(NOT WIN32)
INSTALL(PROGRAMS ${QT_BIN}/moc
DESTINATION ${VISIT_INSTALLED_VERSION_BIN}
PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
GROUP_WRITE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
)
ELSE(NOT WIN32)
INSTALL(PROGRAMS ${QT_MOC_EXECUTABLE}
DESTINATION ${VISIT_INSTALLED_VERSION_BIN}
PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
GROUP_WRITE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
)
ENDIF(NOT WIN32)
ENDIF(NOT "${QT_BIN}" MATCHES "OFF")
......
......@@ -49,6 +49,9 @@
# Change how python wrappers are handled on windows, due to different
# VTK directory structure.
#
# Kathleen Bonnell, Thu Dec 2 15:30:05 MST 2010
# Add .lib files for Install on Windows.
#
#****************************************************************************/
INCLUDE(${VISIT_SOURCE_DIR}/CMake/ThirdPartyInstallLibrary.cmake)
......@@ -114,12 +117,19 @@ FOREACH(VTKLIB vtkCommon
)
IF(WIN32)
SET(LIBNAME ${VTK_RUNTIME_DIRS}/${VTKLIB}.${SO_EXT})
IF(EXISTS ${LIBNAME})
THIRD_PARTY_INSTALL_LIBRARY(${LIBNAME})
ENDIF(EXISTS ${LIBNAME})
SET(LIBNAME ${VTK_LIBRARY_DIRS}/${VTKLIB}.lib)
IF(EXISTS ${LIBNAME})
THIRD_PARTY_INSTALL_LIBRARY(${LIBNAME})
ENDIF(EXISTS ${LIBNAME})
ELSE(WIN32)
SET(LIBNAME ${VTK_LIBRARY_DIRS}/lib${VTKLIB}.${SO_EXT})
IF(EXISTS ${LIBNAME})
THIRD_PARTY_INSTALL_LIBRARY(${LIBNAME})
ENDIF(EXISTS ${LIBNAME})
ENDIF(WIN32)
IF(EXISTS ${LIBNAME})
THIRD_PARTY_INSTALL_LIBRARY(${LIBNAME})
ENDIF(EXISTS ${LIBNAME})
ENDFOREACH(VTKLIB)
# Add install targets for VTK headers too -- but just the vtk-5.0 dir.
......
......@@ -51,12 +51,21 @@
# Brad Whitlock, Wed Oct 27 14:12:19 PDT 2010
# Make sure that TESSELLATION_LIBRARY gets saved.
#
# Kathleen Bonnell, Thu Dec 2 15:45:44 MST 2010
# Allow plugin installs on Windows.
# Added BOOST_INCLUDE_DIR, TESSELLATION_LIBRARY.
# Expand SLIVR_INCLUDE_DIR.
# Add defintions for HAVE_LIBGLEW, HAVE_LIBSLIVR (if VISIT_SLIVR).
# Only set TUVOK_LIB if VISIT_TUVOK is ON.
# Add preprocessor definitions for Windows.
# Add VISIT_PYTHON_SCRIPTING.
#
#****************************************************************************/
##
## This file gets generated by VisIt's top-level CMakeLists.txt and gets installed
## along with VisIt so 3rd party plugins can be developed against an installed version
## of VisIt.
## This file gets generated by VisIt's top-level CMakeLists.txt and gets
## installed along with VisIt so 3rd party plugins can be developed against an
## installed version of VisIt.
##
# Build shared libraries since we're building plugins.
......@@ -101,6 +110,7 @@ SET(VISIT_COMMON_INCLUDES
)
# VisIt options
SET(VISIT_PYTHON_SCRIPTING @VISIT_PYTHON_SCRIPTING@)
SET(VISIT_SERVER_COMPONENTS_ONLY @VISIT_SERVER_COMPONENTS_ONLY@)
SET(VISIT_ENGINE_ONLY @VISIT_ENGINE_ONLY@)
SET(VISIT_DBIO_ONLY @VISIT_DBIO_ONLY@)
......@@ -121,6 +131,7 @@ SET(MESA_LIBRARY_DIR ${VISIT_LIBRARY_DIR})
SET(GLEW_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/visit/third_party_builtin/glew/glew/include)
SET(GLEW_LIBRARY_DIR ${VISIT_LIBRARY_DIR})
SET(GLEW_LIB @GLEW_LIB@)
ADD_DEFINITIONS(-DHAVE_LIBGLEW)
# Set up OpenGL
SET(OPENGL_INCLUDE_DIR @OPENGL_INCLUDE_DIR@)
......@@ -130,6 +141,9 @@ SET(OPENGL_glu_LIBRARY @OPENGL_glu_LIBRARY@)
# Set up the tessellation library
SET(TESSELLATION_LIBRARY @TESSELLATION_LIBRARY@)
# Set up BOOST
SET(BOOST_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/visit/third_party_builtin/bilib/boost_1_42_0)
# Set up Qt
SET(QT_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/qt/include)
SET(QT_QTCORE_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/qt/include/QtCore)
......@@ -156,11 +170,20 @@ SET(PYTHON_INCLUDE_PATH ${VISIT_INCLUDE_DIR}/python/include/python@PYTHON_V
SET(PYTHON_LIBRARY ${VISIT_LIBRARY_DIR}/libpython@PYTHON_VERSION@.so)
# Set up SLIVR
SET(SLIVR_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/visit/third_party_builtin/slivr/slivr)
SET(SLIVR_INCLUDE_DIR
${VISIT_INCLUDE_DIR}/visit/third_party_builtin/slivr
${VISIT_INCLUDE_DIR}/visit/third_party_builtin/slivr/slivr
${VISIT_INCLUDE_DIR}/visit/third_party_builtin/slivr/teem-1.9.0-src/src
${VISIT_INCLUDE_DIR}/visit/third_party_builtin/slivr/teem-1.9.0-src/src/teem
)
SET(SLIVR_GUI_IMPL QvisCMap2Display.C QvisCMap2Widget.C)
SET(SLIVR_GUI_HDR QvisCMap2Display.h QvisCMap2Widget.h)
SET(SLIVR_LIB slivrG slivrV)
IF(VISIT_SLIVR)
ADD_DEFINITIONS(-DHAVE_LIBSLIVR)
ENDIF(VISIT_SLIVR)
# Set up 3rd party I/O libraries
SET(ADIOS_INCLUDE_DIR ${VISIT_INCLUDE_DIR}/adios/include)
SET(ADIOS_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
......@@ -240,46 +263,44 @@ SET(XDMF_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
SET(XDMF_LIB @XDMF_LIB@)
# Set up TUVOK
SET(TUVOK_LIB tuvok)
IF(VISIT_TUVOK)
SET(TUVOK_LIB tuvok)
ENDIF(VISIT_TUVOK)
# Windows specific defines
IF(WIN32)
ADD_DEFINITIONS(-D_USE_MATH_DEFINES)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
ADD_DEFINITIONS(-D_SCL_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
ENDIF(WIN32)
# Installation macros
MACRO(VISIT_INSTALL_DATABASE_PLUGINS)
IF(WIN32)
MESSAGE(STATUS "No need to install database plugins")
ELSE(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/databases"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/databases"
)
ENDFOREACH(target)
ENDIF(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/databases"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/databases"
)
ENDFOREACH(target)
ENDMACRO(VISIT_INSTALL_DATABASE_PLUGINS)
MACRO(VISIT_INSTALL_OPERATOR_PLUGINS)
IF(WIN32)
MESSAGE(STATUS "No need to install operator plugins")
ELSE(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/operators"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/operators"
)
ENDFOREACH(target)
ENDIF(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/operators"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/operators"
)
ENDFOREACH(target)
ENDMACRO(VISIT_INSTALL_OPERATOR_PLUGINS)
MACRO(VISIT_INSTALL_PLOT_PLUGINS)
IF(WIN32)
MESSAGE(STATUS "No need to install plot plugins")
ELSE(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/plots"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/plots"
)
ENDFOREACH(target)
ENDIF(WIN32)
FOREACH(target ${ARGN})
SET_TARGET_PROPERTIES(${target} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/plots"
LIBRARY_OUTPUT_DIRECTORY "${VISIT_PLUGIN_DIR}/plots"
)
ENDFOREACH(target)
ENDMACRO(VISIT_INSTALL_PLOT_PLUGINS)
# Parallel settings
......
......@@ -182,6 +182,13 @@
# I added some more filtering when generating VisItLibraryDependencies.cmake
# so it does not include local path names for Qt and Python.
#
# Kathleen Bonnell, Thu Dec 2 15:49:04 MST 2010
# Changed how ZLIB is handled on Windows. Add compiler version messages
# for MSVC to PluginVsInstall.cmake. Make windows-specific string
# replacements in VisItLibraryDependencies.cmake. Allow '*.hpp' when
# adding headers. Add VisItGenerator.cmake file for plugin development
# against an Installed VisIt on Windows.
#
#****************************************************************************/
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
......@@ -657,6 +664,7 @@ INSTALL(DIRECTORY avt common engine gui launcher mdserver third_party_builtin vi
WORLD_READ WORLD_EXECUTE
CONFIGURATIONS "";None;Debug;Release;RelWithDebInfo;MinSizeRel
FILES_MATCHING PATTERN "*.h"
PATTERN "*.hpp"
PATTERN ".svn" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
)
......@@ -923,21 +931,10 @@ IF(CMAKE_HOST_UNIX)
ADD_DEFINITIONS(-D_LARGEFILE64_SOURCE)
ELSE(CMAKE_HOST_UNIX)
IF(WIN32)
SET(ZLIB_LIBRARY_DIR ${VISIT_WINDOWS_DIR}/ThirdParty/zlib/lib/${VISIT_MSVC_VERSION})
IF(EXISTS ${ZLIB_LIBRARY_DIR}/zlib1.dll)
SET(ZLIB_LIB ${ZLIB_LIBRARY_DIR}/zlib1.lib)
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy
${ZLIB_LIBRARY_DIR}/zlib1.dll
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ThirdParty)
INSTALL(FILES ${ZLIB_LIBRARY_DIR}/zlib1.dll
DESTINATION ${VISIT_INSTALLED_VERSION_BIN}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_WRITE GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
CONFIGURATIONS "";None;Debug;Release;RelWithDebInfo;MinSizeRel
)
ENDIF()
INCLUDE(${VISIT_SOURCE_DIR}/CMake/FindZlib.cmake)
IF(NOT ZLIB_FOUND)
SET(ZLIB_LIB vtkzlib)
ENDIF(NOT ZLIB_FOUND)
ELSE(WIN32)
SET(ZLIB_LIB vtkzlib)
ENDIF(WIN32)
......@@ -1543,7 +1540,25 @@ IF(NOT WIN32)
ENDFOREACH(CMAKE_COMPILER_VERSION_FLAG ${CMAKE_COMPILER_VERSION_FLAGS})
ENDFOREACH(CMAKE_COMPILER_NAME CMAKE_C_COMPILER CMAKE_CXX_COMPILER)
ELSE(NOT WIN32)
SET(CMAKE_C_COMPILER_VERSION_MESSAGE " ${CMAKE_GENERATOR}")
IF(MSVC)
INCLUDE(CMakeDetermineVSServicePack)
DetermineVSServicePack(my_service_pack)
IF(my_service_pack)
SET(CMAKE_C_COMPILER_VERSION_MESSAGE "${CMAKE_C_COMPILER_VERSION_MESSAGE} (${my_service_pack})")
ENDIF(my_service_pack)
SET(CMAKE_CXX_COMPILER_VERSION_MESSAGE " Visual C/C++ version number: ${MSVC_VERSION}")
FILE(WRITE ${VISIT_BINARY_DIR}/CMake/VisItGenerator.cmake
"SET(CMAKE_GENERATOR \"${CMAKE_GENERATOR}\" CACHE INTERNAL \"\" FORCE)"
)
INSTALL(FILES ${VISIT_BINARY_DIR}/CMake/VisItGenerator.cmake
DESTINATION ${VISIT_INSTALLED_VERSION_INCLUDE}
PERMISSIONS OWNER_READ OWNER_WRITE
GROUP_READ GROUP_WRITE
WORLD_READ
)
ENDIF(MSVC)
ENDIF(NOT WIN32)
# Store some configure information into a C file (like version, SVN version
......@@ -1698,6 +1713,10 @@ ENDIF(NOT WIN32 AND IS_DIRECTORY ${VISIT_SOURCE_DIR}/../data)
#-----------------------------------------------------------------------------
EXPORT_LIBRARY_DEPENDENCIES(${VISIT_BINARY_DIR}/include/VisItLibraryDependencies.cmake.in)
IF(WIN32)
get_filename_component(PD ${PYTHON_LIBRARIES} PATH)
ENDIF(WIN32)
INSTALL(CODE "
FUNCTION(FILTER_LIBRARY_DEPENDENCIES filename)
FILE(STRINGS \${filename}.in lines)
......@@ -1719,10 +1738,39 @@ FUNCTION(FILTER_LIBRARY_DEPENDENCIES filename)
ENDIF(\"\${line}\" MATCHES \".*\${suppress}_LIB_DEPENDS.*\")
ENDFOREACH(suppress)
IF(\${outputLine} STREQUAL \"TRUE\")
STRING(REPLACE \"${QT_LIBRARY_DIR}/\" \"\\\${VISIT_LIBRARY_DIR}/\" filteredline \"\${line}\")
STRING(REPLACE \"${VISIT_PYTHON_DIR}/lib/\" \"\\\${VISIT_LIBRARY_DIR}/\" filteredline2 \"\${filteredline}\")
STRING(REPLACE \"/libQtUiTools.a\" \"/../archives/libQtUiTools.a\" filteredline3 \"\${filteredline2}\")
FILE(APPEND \${filename} \"\${filteredline3}\\n\")
STRING(REPLACE \"${QT_LIBRARY_DIR}/\"
\"\\\${VISIT_LIBRARY_DIR}/\"
filteredline
\"\${line}\")
STRING(REPLACE \"${VISIT_PYTHON_DIR}/lib/\"
\"\\\${VISIT_LIBRARY_DIR}/\"
filteredline2
\"\${filteredline}\")
STRING(REPLACE \"/libQtUiTools.a\"
\"/../archives/libQtUiTools.a\"
filteredline3
\"\${filteredline2}\")
IF(NOT WIN32)
FILE(APPEND \${filename} \"\${filteredline3}\\n\")
ELSE(NOT WIN32)
# extra replacements that need to be made on Windows.
STRING(REPLACE \"${PD}\"
\"\\\${VISIT_LIBRARY_DIR}\"
filteredline4
\"\${filteredline3}\")
STRING(REPLACE \"${ZLIB_LIBRARY_DIR}\"
\"\\\${VISIT_LIBRARY_DIR}\"
filteredline5
\"\${filteredline4}\")
STRING(REPLACE \"viewer_LIB_DEPENDS\"
\"viewerlib_LIB_DEPENDS\"
filteredline6
\"\${filteredline5}\")
STRING(REPLACE \"gui_LIB_DEPENDS\"
\"guilib_LIB_DEPENDS\"
filteredline7 \"\${filteredline6}\")
FILE(APPEND \${filename} \"\${filteredline7}\\n\")
ENDIF(NOT WIN32)
ENDIF(\${outputLine} STREQUAL \"TRUE\")
ENDFOREACH(line)
ENDFUNCTION(FILTER_LIBRARY_DEPENDENCIES)
......
......@@ -66,7 +66,7 @@ ${PYTHON_INCLUDE_PATH}
)
# Add link directories
LINK_DIRECTORIES(${LIBRARY_OUTPUT_DIRECTORY} ${VTK_LIBRARY_DIRS} ${PYTHON_DIRS})
LINK_DIRECTORIES(${LIBRARY_OUTPUT_DIRECTORY} ${VTK_LIBRARY_DIRS} ${PYTHON_DIR})
#********************************* SERIAL ************************************
......
......@@ -115,12 +115,20 @@ static const char usage[] =
"\n"
" Debugging arguments:\n"
" -debug <level> Run with <level> levels of output logging.\n"
" <level> must be between 1 and 5.\n";
" <level> must be between 1 and 5.\n"
"\n"
" Developer arguments:\n"
" -xml2cmake Run the xml2cmake tool.\n"
" -public xml2cmake: force install plugins publicly\n"
" -private xml2cmake: force install plugins privately\n"
" -clobber Permit xml2... tools to overwrite old files\n"
" -noprint Silence debugging output from xml2... tools\n"
"\n";
/*
* Prototypes
*/
char *AddEnvironment(int);
char *AddEnvironment(const int, const int);
void AddPath(char *, const char *, const char*);
int ReadKey(const char *key, char **keyval);
void TestForConfigFiles(const char *component);
......@@ -219,6 +227,9 @@ void TestForConfigFiles(const char *component);
* Kathleen Bonnell, Fri Jan 29 9:01:15 MST 2009
* Changed engine executable name to engine_ser.
*
* Kathleen Bonnell, Wed Dec 1 08:45:12 MST 2010
* Add support for xml2cmake.
*
*****************************************************************************/
int
......@@ -229,6 +240,7 @@ main(int argc, char *argv[])
*visitargs = 0, *cptr = 0, *cptr2 = 0, tmpArg[512];
int i, j, size = 0, retval = 0, skipping = 0, nArgsSkip = 0, tmplen = 0;
int addMovieArguments = 0, addVISITARGS = 1, useShortFileName = 0;
int addPluginVars = 0;
int newConsole = 0;
int noloopback = 0;
int parallel = 0;
......@@ -355,6 +367,12 @@ main(int argc, char *argv[])
hostset = 1;
PUSHARG("-host");
}
else if(ARG("-xml2cmake"))
{
strcpy(component, "xml2cmake.exe");
addVISITARGS = 0;
addPluginVars = 1;
}
else
{
if (!BEGINSWITHQUOTE(argv[i]) && HASSPACE(argv[i]))
......@@ -405,7 +423,7 @@ main(int argc, char *argv[])
/*
* Add some stuff to the environment.
*/
visitpath = AddEnvironment(useShortFileName);
visitpath = AddEnvironment(useShortFileName, addPluginVars);
/*
* Migrate config files
......@@ -780,10 +798,13 @@ ReadKey(const char *key, char **keyval)
* Kathleen Bonnell, Tue Mar 30 16:46:19 MST 2010
* Test for dev dir and set vars accordingly.
*
* Kathleen Bonnell, Wed Dec 1 08:43:44 MST 2010
* Add variables necessary for plugin development if necessary.
*
*****************************************************************************/
char *
AddEnvironment(int useShortFileName)
AddEnvironment(const int useShortFileName, const int addPluginVars)
{
char *tmp, *visitpath = 0;
char *visitdevdir = 0;
......@@ -928,14 +949,28 @@ AddEnvironment(int useShortFileName)
PathAppend(appData, "LLNL");
PathAppend(appData, "VisIt");
sprintf(tmp, "VISITPLUGINDIR=%s;%s", appData, visitpath);
putenv(tmp);
if (addPluginVars)
{
sprintf(tmp, "VISITPLUGININSTPRI=%s\LLNL\VisIt", appData);
putenv(tmp);
}
}
else
{
sprintf(tmp, "VISITPLUGINDIR=%s", visitpath);
putenv(tmp);
}
}
putenv(tmp);
if (addPluginVars)
{
sprintf(tmp, "VISITPLUGININSTPUB=%s", visitpath);
putenv(tmp);
sprintf(tmp, "VISITARCHHOME=%s", visitpath);
putenv(tmp);
}
/*
* Set the help dir.
......
......@@ -72,6 +72,7 @@ ENDIF (NOT CMAKE_CL_64)
VISIT_OPTION_DEFAULT(VISIT_SILO_LIBDEP HDF5_LIBRARY_DIR hdf5dll ${VISIT_HDF5_LIBDEP})
VISIT_OPTION_DEFAULT(VISIT_ZLIB_DIR ${VISITHOME}/zlib)
##
## Xdmf
##
......
......@@ -2,6 +2,7 @@
<Plugin name="Chombo" type="database" label="Chombo" version="1.0" enabled="true" mdspecificcode="false" engspecificcode="false" onlyengine="false" noengine="false" dbtype="STMD" haswriter="false" hasoptions="true">
<CXXFLAGS>
${HDF5_INCLUDE_DIR}
${BOOST_INCLUDE_DIR}
</CXXFLAGS>
<LDFLAGS>
${HDF5_LIBRARY_DIR}
......
......@@ -34,6 +34,7 @@ no active time slider.</li>
<li>A bug was corrected with the Exodus reader for setting up element blocks with non-consecutive numbers.</li>
<li>A bug was corrected where data-level comparisons on vector data would return the value of the first vector component for all three components,
when using the "pos_cmfe" option, running in parallel, and working on rectilinear grids.</li>
<li>Plugin development tools now work against an installed verison of VisIt on Windows.</li>
</ul>
<p><b><font size="4">Enhancements in version 2.1.2</font></b></p>
......
......@@ -98,6 +98,10 @@ using namespace std;
// Brad Whitlock, Thu Feb 28 09:47:50 PDT 2008
// Changed init to a map so there can be inits for many targets.
//
// Kathleen Bonnell, Thu Dec 2 15:55:06 MST 2010
// Changed how vartypes is parsed to fix a variable scoping issue on
// Windows.
//
// ****************************************************************************
......@@ -1183,14 +1187,13 @@ class VariableName : public virtual Field
}
else
{
const char *val = v.toStdString().c_str();
int m = 1;
varTypes = 0;
for(int i = 0; i < v.length(); ++i)
{
if(val[i] == '1')
if(v[i] == '1')
varTypes |= m;
else if(val[i] != '0')
else if(v[i] != '0')
cOut << "Bad character in vartypes attribute!" << Endl;
m = m << 1;
}
......