Skip to content

Commit

Permalink
Merge branch 'master' into issue1579_durack1_UpdateNetcdf4.3.3.1To4.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
durack1 committed Dec 24, 2015
2 parents 5ef31e6 + 07a5590 commit 3750173
Show file tree
Hide file tree
Showing 9 changed files with 220 additions and 64 deletions.
2 changes: 1 addition & 1 deletion CMake/cdat_modules/cryptography_deps.cmake
Original file line number Diff line number Diff line change
@@ -1 +1 @@
set(CRYPTOGRAPHY_deps ${python_pkg} ${pip_pkg} ${cffi_pkg})
set(CRYPTOGRAPHY_deps ${python_pkg} ${pip_pkg} ${cffi_pkg} ${openssl_pkg})
6 changes: 6 additions & 0 deletions CMake/cdat_modules/cryptography_external.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,10 @@
# and configure and build it
set(nm CRYPTOGRAPHY)

# Set LDFlags and CFlags to make it easier to find OpenSSL
list(APPEND USR_ENVS
"LDFLAGS=-L${OPENSSL_LIBRARY_DIR} $ENV{LDFLAGS}"
"CFLAGS=-I${OPENSSL_INCLUDE_DIR} $ENV{CFLAGS}"
)

include(pipinstaller)
1 change: 1 addition & 0 deletions CMake/cdat_modules/openssl_deps.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(OPENSSL_deps )
37 changes: 37 additions & 0 deletions CMake/cdat_modules/openssl_external.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
set (OPENSSL_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/build/openssl")
set (OPENSSL_INSTALL_DIR "${cdat_EXTERNALS}")

execute_process (COMMAND uname -s COMMAND tr -d '\n'
OUTPUT_VARIABLE HOST)
STRING (TOLOWER ${HOST} HOST)
execute_process (COMMAND uname -m COMMAND tr -d '\n'
OUTPUT_VARIABLE ARCHITECTURE)

get_filename_component (COMPILER "${CMAKE_C_COMPILER}" NAME_WE)

if (APPLE)
if (ARCHITECTURE MATCHES "64$")
set (HOST "${HOST}64")
endif ()
set (COMPILER "cc")
endif ()

set (OPENSSL_CONF_ARGS "${HOST}-${ARCHITECTURE}-${COMPILER}")
set (OPENSSL_CONF_ARGS
${OPENSSL_CONF_ARGS}
"--prefix=${OPENSSL_INSTALL_DIR}")

ExternalProject_Add (openssl
DOWNLOAD_DIR ${CDAT_PACKAGE_CACHE_DIR}
SOURCE_DIR ${OPENSSL_SOURCE_DIR}
INSTALL_DIR ${OPENSSL_INSTALL_DIR}
URL ${OPENSSL_SOURCE_URL}
URL_MD5 ${OPENSSL_MD5}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${OPENSSL_SOURCE_DIR}/Configure ${OPENSSL_CONF_ARGS}
DEPENDS ${OPENSSL_DEPS}
${ep_log_options}
)

set (OPENSSL_INCLUDE_DIR "${OPENSSL_INSTALL_DIR}/include")
set (OPENSSL_LIBRARY_DIR "${OPENSSL_INSTALL_DIR}/lib")
31 changes: 31 additions & 0 deletions CMake/cdat_modules/openssl_pkg.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
option(CDAT_USE_SYSTEM_OPENSSL "Use system OpenSSL, if found." ON)
mark_as_advanced(CDAT_USE_SYSTEM_OPENSSL)
if(CDAT_USE_SYSTEM_OPENSSL)
find_package(OpenSSL QUIET)
if(OPENSSL_FOUND)
get_filename_component(OPENSSL_LIBRARY_DIR
"${OPENSSL_SSL_LIBRARY}" DIRECTORY)
message(STATUS "System OpenSSL found. "
"OpenSSL library directory: ${OPENSSL_LIBRARY_DIR}. "
"OpenSSL Version: ${OPENSSL_VERSION}")
endif(OPENSSL_FOUND)
endif(CDAT_USE_SYSTEM_OPENSSL)

if(NOT CDAT_USE_SYSTEM_OPENSSL OR NOT OPENSSL_FOUND)
set(OPENSSL_MAJOR_SRC 1)
set(OPENSSL_MINOR_SRC 0)
set(OPENSSL_PATCH_SRC 2e)
set(OPENSSL_VERSION
${OPENSSL_MAJOR_SRC}.${OPENSSL_MINOR_SRC}.${OPENSSL_PATCH_SRC})

message(STATUS "Compiling OpenSSL from source. Version: ${OPENSSL_VERSION}")

set(OPENSSL_URL ${LLNL_URL})
set(OPENSSL_GZ "openssl-${OPENSSL_VERSION}.tar.gz")
set(OPENSSL_MD5 5262bfa25b60ed9de9f28d5d52d77fc5)
set(OPENSSL_SOURCE_URL ${OPENSSL_URL}/${OPENSSL_GZ})

# We've reached here because we need OpenSSL.
# Hence, defaulting to ON
add_cdat_package(openssl "" "" ON)
endif(NOT CDAT_USE_SYSTEM_OPENSSL OR NOT OPENSSL_FOUND)
11 changes: 6 additions & 5 deletions CMake/cdat_modules_extra/python_configure_step.cmake.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
CMAKE_POLICY(SET CMP0012 NEW)

set(ENV${CC} "@CMAKE_C_COMPILER@")
set(ENV${CXX} "@CMAKE_CXX_COMPILER@")
Expand Down Expand Up @@ -26,13 +27,13 @@ if(APPLE)
set(ENV{AQUA_CDAT} "no")
set(ENV{MAC_OSX_DEPLOYMENT_TARGET} "@CMAKE_OSX_DEPLOYMENT_TARGET@")
unset(ENV{MAKEFLAGS})
endif()

if(APPLE)
set(library_param --prefix=@CMAKE_INSTALL_PREFIX@ --with-system-expat --enable-framework=@CMAKE_INSTALL_PREFIX@/Library/Frameworks)
if(@_CURRENT_OSX_SDK_VERSION@ VERSION_LESS "10.11")
set(library_param --prefix=@CMAKE_INSTALL_PREFIX@ --with-system-expat --enable-framework=@CMAKE_INSTALL_PREFIX@/Library/Frameworks)
else()
set(library_param --prefix=@CMAKE_INSTALL_PREFIX@ --enable-framework=@CMAKE_INSTALL_PREFIX@/Library/Frameworks)
endif()
elseif(UNIX)
set(library_param --prefix=@CMAKE_INSTALL_PREFIX@ --enable-shared --enable-unicode=ucs4)

endif()

EXECUTE_PROCESS(
Expand Down
101 changes: 101 additions & 0 deletions CMake/cmake_modules/AppleSDKUtils.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#----------------------------------------------------------------------------
# The following script tries to set important toolchain related variables for
# MacOSX. The variables set include CMAKE_OSX_DEPLOYMENT_TARGET,
# OSX_DEVELOPER_ROOT, CMAKE_OSX_SYSROOT, etc. If the deployment target is not
# set by the user, it is set as the current OS version. Similarly, if the
# sysroot is not set by the user, it is set to the latest available version of
# the MacOSX SDK.
# NOTE: It is assumed that the latest available SDK is the best version that
# goes with the version specified by the deployment target. Matching the
# versions of the deployment target and SDK are not enforced. A warning,
# however, is presented to the user if the versions do not match.

#----------------------------------------------------------------------------
# OSX version number
# Support only 10.8 or higher for now
if (CURRENT_OSX_VERSION VERSION_LESS 10.8)
message(FATAL_ERROR "Found Mac OSX version ${CURRENT_OSX_VERSION}; "
"Minimum supported Mac OSX version is 10.8")
endif ()

# Current OSX version as a two-component string: 10.8, 10.9, etc ...
string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
_CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")

#----------------------------------------------------------------------------
# CMAKE_OSX_DEPLOYMENT_TARGET
if(NOT CMAKE_OSX_DEPLOYMENT_TARGET)
message(STATUS "Setting OSX_DEPLOYMENT_TARGET to ${_CURRENT_OSX_VERSION}")
set(CMAKE_OSX_DEPLOYMENT_TARGET ${_CURRENT_OSX_VERSION})
endif()

#----------------------------------------------------------------------------
# OSX_DEVELOPER_ROOT
if(NOT OSX_DEVELOPER_ROOT)
message(WARNING "Could not determine developer root directory. "
"\nAssuming \"/Applications/Xcode.app/Contents/Developer\".")
set(OSX_DEVELOPER_ROOT "/Applications/Xcode.app/Contents/Developer")
endif(NOT OSX_DEVELOPER_ROOT)

#----------------------------------------------------------------------------
# CMAKE_OSX_SYSROOT

if(NOT CMAKE_OSX_SYSROOT)
# Find all SDKs installed in the OSX_DEVELOPER_ROOT
foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
if(_CMAKE_OSX_SDKS)
set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
break()
endif()
endforeach()

# find the latest SDK
set(_CMAKE_OSX_LATEST_SDK_VERSION "0.0")
file(GLOB _CMAKE_OSX_SDKS RELATIVE "${_CMAKE_OSX_SDKS_DIR}"
"${_CMAKE_OSX_SDKS_DIR}/MacOSX*.sdk")
foreach(_SDK ${_CMAKE_OSX_SDKS})
if(_SDK MATCHES "MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk" AND
CMAKE_MATCH_1 VERSION_GREATER ${_CMAKE_OSX_LATEST_SDK_VERSION})
set(_CMAKE_OSX_LATEST_SDK_VERSION "${CMAKE_MATCH_1}")
endif()
endforeach()

if(_CMAKE_OSX_LATEST_SDK_VERSION VERSION_GREATER "0.0")
# Set sysroot to latest SDK
message(STATUS "Latest SDK version found is "
"${_CMAKE_OSX_LATEST_SDK_VERSION}. "
"Setting CMAKE_OSX_SYSROOT to the latest SDK version.")
set(CMAKE_OSX_SYSROOT
"${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_LATEST_SDK_VERSION}.sdk")
else()
message(AUTHOR_WARNING "No SDK found. "
"Please set CMAKE_OSX_SYSROOT to path of valid MacOSX SDK.")
endif()

endif(NOT CMAKE_OSX_SYSROOT)

#----------------------------------------------------------------------------
# DEPLOYMENT_TARGET and SYSROOT version match

if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_SYSROOT)
string(REGEX REPLACE ".*MacOSX([0-9]+\\.[0-9]+).*" "\\1"
_CURRENT_OSX_SDK_VERSION "${CMAKE_OSX_SYSROOT}")
if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_GREATER ${_CURRENT_OSX_SDK_VERSION})
message(AUTHOR_WARNING
"Deployment target (${CMAKE_OSX_DEPLOYMENT_TARGET}) cannot be greater "
"than the SYSROOT version (${_CURRENT_OSX_SDK_VERSION}) as specified by "
"CMAKE_OSX_SYSROOT. "
"Reverting CMAKE_OSX_DEPLOYMENT_TARGET to SYSROOT version.")
set(CMAKE_OSX_DEPLOYMENT_TARGET ${_CURRENT_OSX_SDK_VERSION})
endif()
endif()

#----------------------------------------------------------------------------
# CMAKE_OSX_ARCHITECTURE
# Legacy code that enforces 64-bit-ness...

if(NOT CMAKE_OSX_ARCHITECTURES)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
set(CMAKE_OSX_ARCHITECTURES_M "64")
endif()
44 changes: 3 additions & 41 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#=============================================================================
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
CMAKE_POLICY(SET CMP0012 NEW)

if ("${CMAKE_VERSION}" VERSION_LESS "2.8.12")
message(WARNING "Your CMake version is ${CMAKE_VERSION} which is depreciated for UV-CDAT. The recommended minimum CMake version is 2.8.12. Using older versions can result in build errors particularly with Xcode 5")
Expand Down Expand Up @@ -97,47 +98,7 @@ endif()
# calls so that it's set properly to detect 64-bit-ness...
#-----------------------------------------------------------------------------
if(APPLE)

string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" OSX_VER_MAJOR "${CURRENT_OSX_VERSION}")
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" OSX_VER_MINOR "${CURRENT_OSX_VERSION}")

if("${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "")
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "" FORCE)
set(CMAKE_OSX_ARCHITECTURES_M "64" CACHE STRING "" FORCE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "${OSX_VER_MAJOR}.${OSX_VER_MINOR}" CACHE STRING "" FORCE)
endif()

# Support only 10.8 or higher for now
if(IS_DIRECTORY "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk")
set(HAVE_10_8_SDK TRUE)
endif()
if(IS_DIRECTORY "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk")
set(HAVE_10_9_SDK TRUE)
endif()
if(IS_DIRECTORY "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk")
set(HAVE_10_10_SDK TRUE)
endif()
# Try for the lowest version SDK we can
if ((${OSX_VER_MINOR} VERSION_EQUAL 8) AND (HAVE_10_8_SDK))
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -headerpad_max_install_names")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8 CACHE STRING "" FORCE)
set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk" CACHE PATH "" FORCE)
elseif((${OSX_VER_MINOR} VERSION_EQUAL 9) AND (HAVE_10_9_SDK))
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -headerpad_max_install_names")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9 CACHE STRING "" FORCE)
set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" CACHE PATH "" FORCE)
elseif((${OSX_VER_MINOR} VERSION_EQUAL 10) AND (HAVE_10_10_SDK))
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -headerpad_max_install_names")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.10 CACHE STRING "" FORCE)
set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" CACHE PATH "" FORCE)
else()
message(FATAL_ERROR "[ERROR] Could not match your OS VERSION (${OSX_VER_MAJOR}.${OSX_VER_MINOR}) with any of your SDKs, or OS not supported yet")
endif()

include (AppleSDKUtils)
endif()

# Setup git and related options
Expand Down Expand Up @@ -518,6 +479,7 @@ include(libcf_pkg)
include(libdrs_pkg)
include(matplotlib_pkg)
include(six_pkg)
include(openssl_pkg)
include(cryptography_pkg)
include(cffi_pkg)
include(ffi_pkg)
Expand Down
51 changes: 34 additions & 17 deletions Packages/vcs/Lib/vcs2vtk.py
Original file line number Diff line number Diff line change
Expand Up @@ -570,16 +570,24 @@ def projectArray(w, projection, wc, geo=None):
pname = projDict.get(projection._type, projection.type)
projName = pname
pd.SetName(projName)

if projection.type == "polar (non gctp)":
if ym < yM:
pd.SetOptionalParameter("lat_0", "-90.")
pd.SetCentralMeridian(xm)
else:
pd.SetOptionalParameter("lat_0", "90.")
pd.SetCentralMeridian(xm + 180.)
else:
if projection.type == 'aeqd':
# this is a temporary branch to keep the same
# baselines
setProjectionParameters(pd, projection)
else:
pd.SetOptionalParameter("over", "true")
if projection.type == "polar (non gctp)":
if ym < yM:
pd.SetOptionalParameter("lat_0", "-90.")
pd.SetCentralMeridian(xm)
else:
pd.SetOptionalParameter("lat_0", "90.")
pd.SetCentralMeridian(xm + 180.)
else:
setProjectionParameters(pd, projection)
if ((not hasattr(projection, 'centralmeridian') or
numpy.allclose(projection.centralmeridian, 1e+20))):
pd.SetCentralMeridian(float(xm + xM) / 2.0)
geo.SetSourceProjection(ps)
geo.SetDestinationProjection(pd)

Expand All @@ -605,15 +613,24 @@ def project(pts, projection, wc, geo=None):
pname = projDict.get(projection._type, projection.type)
projName = pname
pd.SetName(projName)
if projection.type == "polar (non gctp)":
if ym < yM:
pd.SetOptionalParameter("lat_0", "-90.")
pd.SetCentralMeridian(xm)
else:
pd.SetOptionalParameter("lat_0", "90.")
pd.SetCentralMeridian(xm + 180.)
else:
if projection.type == 'aeqd':
# this is a temporary branch to keep the same
# baselines
setProjectionParameters(pd, projection)
else:
pd.SetOptionalParameter("over", "true")
if projection.type == "polar (non gctp)":
if ym < yM:
pd.SetOptionalParameter("lat_0", "-90.")
pd.SetCentralMeridian(xm)
else:
pd.SetOptionalParameter("lat_0", "90.")
pd.SetCentralMeridian(xm + 180.)
else:
setProjectionParameters(pd, projection)
if (not hasattr(projection, 'centralmeridian') or
numpy.allclose(projection.centralmeridian, 1e+20)):
pd.SetCentralMeridian(float(xm + xM) / 2.0)
geo.SetSourceProjection(ps)
geo.SetDestinationProjection(pd)
geopts = vtk.vtkPoints()
Expand Down

0 comments on commit 3750173

Please sign in to comment.