Commit 81cb2d8b authored by Guillaume Pasero's avatar Guillaume Pasero

Merge branch 'update_superbuild_6.2' into develop

parents 61334ae8 b165cfec
......@@ -44,6 +44,8 @@ class OGRDataSource;
class OGRSFDriver;
#endif
class OGRFeature;
#include "OTBGdalAdaptersExport.h"
namespace otb
......@@ -212,6 +214,15 @@ OTBGdalAdapters_EXPORT bool IsOFTInteger64(OGRFieldType type);
OTBGdalAdapters_EXPORT
std::vector<std::string> GetAvailableDriversAsStringVector();
/**
* Returns true if the field 'index' is set and not-null in the given feature
*
* Before gdal 2.2, it calls OGRFeature::IsFieldSet().
* After gdal 2.2, it calls OGRFeature::IsFieldSetAndNotNull()
*/
OTBGdalAdapters_EXPORT
bool IsFieldSetAndNotNull(OGRFeature *feat, int index);
}
}
} // end namespace otb
......
......@@ -28,14 +28,9 @@ set(OTBGdalAdapters_SRC
otbOGRDriversInit.cxx
otbGeometriesToGeometriesFilter.cxx
otbOGRDataSourceWrapper.cxx
otbOGRVersionProxy.cxx
)
if(OTB_USE_GDAL_20)
set(OTBGdalAdapters_SRC ${OTBGdalAdapters_SRC} otbOGRVersionProxy2x.cxx)
else(Otb_use_gdal_20)
set(OTBGdalAdapters_SRC ${OTBGdalAdapters_SRC} otbOGRVersionProxy1x.cxx)
endif(OTB_USE_GDAL_20)
add_library(OTBGdalAdapters ${OTBGdalAdapters_SRC})
target_link_libraries(OTBGdalAdapters
${OTBBoost_LIBRARIES}
......
......@@ -37,6 +37,7 @@
#endif
#include "otbOGRFeatureWrapper.h"
#include "otbJoinContainer.h"
#include "otbOGRVersionProxy.h"
#include <boost/array.hpp>
/*===========================================================================*/
/*===========================[ Static Assertions ]===========================*/
......@@ -166,7 +167,7 @@ std::ostream & otb::ogr::Field::UncheckedPrintSelf(
bool otb::ogr::Field::UncheckedHasBeenSet() const
{
return m_Feature->IsFieldSet(m_index);
return otb::ogr::version_proxy::IsFieldSetAndNotNull(m_Feature.get(), m_index);
}
void otb::ogr::Field::UncheckedUnset() const
......
......@@ -20,15 +20,26 @@
#include "otbOGRVersionProxy.h"
#include "itkMacro.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#if GDAL_VERSION_NUM<2000000
#include "ogrsf_frmts.h"
#else
#include "gdal_priv.h"
#endif
#include "ogr_feature.h"
#pragma GCC diagnostic pop
#else
#if GDAL_VERSION_NUM<2000000
#include "ogrsf_frmts.h"
#else
#include "gdal_priv.h"
#endif
#include "ogr_feature.h"
#endif // __GNUC__ || __clang__
namespace otb
{
......@@ -37,24 +48,48 @@ namespace ogr
namespace version_proxy
{
/*-------------------------[GDAL v2 API change]-------------------------------*/
OTBGdalAdapters_EXPORT bool IsOFTInteger64(OGRFieldType type)
{
#if GDAL_VERSION_NUM<2000000
(void)type;
return false;
#else
return type == OFTInteger64;
#endif
}
GDALDatasetType * Open(const char * filename, bool readOnly)
{
#if GDAL_VERSION_NUM<2000000
return OGRSFDriverRegistrar::Open(filename,!readOnly);
#else
return (GDALDatasetType *)GDALOpenEx(filename, (readOnly? GDAL_OF_READONLY : GDAL_OF_UPDATE) | GDAL_OF_VECTOR,NULL,NULL,NULL);
#endif
}
void Close(GDALDatasetType * dataset)
{
#if GDAL_VERSION_NUM<2000000
OGRDataSource::DestroyDataSource(dataset);
#else
GDALClose(dataset);
#endif
}
GDALDatasetType * Create(GDALDriverType * driver, const char * name)
{
#if GDAL_VERSION_NUM<2000000
GDALDatasetType * ds = driver->CreateDataSource(name);
if(ds)
ds->SetDriver(driver);
return ds;
#else
return driver->Create(name,0,0,0,GDT_Unknown,NULL);
#endif
}
bool Delete(const char * name)
......@@ -67,31 +102,50 @@ bool Delete(const char * name)
poDriver = poDS->GetDriver();
Close(poDS);
}
#if GDAL_VERSION_NUM<2000000
if(poDriver && poDriver->TestCapability(ODrCDeleteDataSource))
{
OGRErr ret = poDriver->DeleteDataSource(name);
return (ret == OGRERR_NONE);
}
#else
if(poDriver)
{
OGRErr ret = poDriver->Delete(name);
return (ret == OGRERR_NONE);
}
#endif
return false;
}
GDALDriverType * GetDriverByName(const char * name)
{
#if GDAL_VERSION_NUM<2000000
return OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(name);
#else
return GetGDALDriverManager()->GetDriverByName(name);
#endif
}
std::string GetDatasetClassName()
{
#if GDAL_VERSION_NUM<2000000
return std::string("OGRDataSource");
#else
return std::string("GDALDataset");
#endif
}
std::string GetDriverClassName()
{
#if GDAL_VERSION_NUM<2000000
return std::string("OGRSFDriver");
#else
return std::string("GDALDriver");
#endif
}
#if GDAL_VERSION_NUM>=2000000
namespace raii
{
// This class is used in the next function, so as to prevent any
......@@ -118,11 +172,14 @@ private:
char ** m_P;
};
}
#endif
std::vector<std::string> GetFileListAsStringVector(GDALDatasetType * dataset)
{
std::vector<std::string> ret;
#if GDAL_VERSION_NUM<2000000
ret.push_back(std::string(dataset->GetName()));
#else
raii::CharPPCapsule capsule(dataset->GetFileList());
std::string files_str="";
......@@ -136,35 +193,62 @@ std::vector<std::string> GetFileListAsStringVector(GDALDatasetType * dataset)
++i;
}
}
#endif
return ret;
}
bool SyncToDisk(GDALDatasetType * dataset)
{
#if GDAL_VERSION_NUM<2000000
const OGRErr res= dataset->SyncToDisk();
return (res == OGRERR_NONE);
#else
dataset->FlushCache();
return true;
#endif
}
std::vector<std::string> GetAvailableDriversAsStringVector()
{
std::vector<std::string> ret;
#if GDAL_VERSION_NUM<2000000
int nbDrivers = OGRSFDriverRegistrar::GetRegistrar()->GetDriverCount();
for(int i = 0; i < nbDrivers;++i)
{
ret.push_back(OGRSFDriverRegistrar::GetRegistrar()->GetDriver(i)->GetName());
}
#else
int nbDrivers = GetGDALDriverManager()->GetDriverCount();
for(int i = 0; i < nbDrivers;++i)
{
ret.push_back(GDALGetDriverShortName(GetGDALDriverManager()->GetDriver(i)));
}
#endif
return ret;
}
std::string GetDriverNameFromDataSource(const GDALDatasetType * ds)
{
#if GDAL_VERSION_NUM<2000000
return std::string(const_cast<GDALDatasetType *>(ds)->GetDriver()->GetName());
#else
return std::string(const_cast<GDALDatasetType *>(ds)->GetDriverName());
#endif
}
/*----------------------[GDAL 2.2 change on IsFieldSet()]---------------------*/
bool IsFieldSetAndNotNull(OGRFeature *feat, int index)
{
#if GDAL_VERSION_NUM<2020000
return feat->IsFieldSet(index);
#else
return feat->IsFieldSetAndNotNull(index);
#endif
}
}
}
} // end namespace
/*
* Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "otbOGRVersionProxy.h"
#include "itkMacro.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#include "ogrsf_frmts.h"
#pragma GCC diagnostic pop
#else
#include "ogrsf_frmts.h"
#endif
namespace otb
{
namespace ogr
{
namespace version_proxy
{
OTBGdalAdapters_EXPORT bool IsOFTInteger64(OGRFieldType itkNotUsed(type))
{
return false;
}
GDALDatasetType * Open(const char * filename, bool readOnly)
{
return OGRSFDriverRegistrar::Open(filename,!readOnly);
}
void Close(GDALDatasetType * dataset)
{
OGRDataSource::DestroyDataSource(dataset);
}
GDALDatasetType * Create(GDALDriverType * driver, const char * name)
{
GDALDatasetType * ds = driver->CreateDataSource(name);
if(ds)
ds->SetDriver(driver);
return ds;
}
bool Delete(const char * name)
{
// Open dataset
GDALDatasetType * poDS = Open(name,false);
GDALDriverType * poDriver = ITK_NULLPTR;
if(poDS)
{
poDriver = poDS->GetDriver();
Close(poDS);
}
if(poDriver && poDriver->TestCapability(ODrCDeleteDataSource))
{
OGRErr ret = poDriver->DeleteDataSource(name);
return (ret == OGRERR_NONE);
}
return false;
}
GDALDriverType * GetDriverByName(const char * name)
{
return OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(name);
}
std::string GetDatasetClassName()
{
return std::string("OGRDataSource");
}
std::string GetDriverClassName()
{
return std::string("OGRSFDriver");
}
std::vector<std::string> GetFileListAsStringVector(GDALDatasetType * dataset)
{
std::vector<std::string> ret;
ret.push_back(std::string(dataset->GetName()));
return ret;
}
bool SyncToDisk(GDALDatasetType * dataset)
{
const OGRErr res= dataset->SyncToDisk();
return (res == OGRERR_NONE);
}
std::vector<std::string> GetAvailableDriversAsStringVector()
{
std::vector<std::string> ret;
int nbDrivers = OGRSFDriverRegistrar::GetRegistrar()->GetDriverCount();
for(int i = 0; i < nbDrivers;++i)
{
ret.push_back(OGRSFDriverRegistrar::GetRegistrar()->GetDriver(i)->GetName());
}
return ret;
}
std::string GetDriverNameFromDataSource(const GDALDatasetType * ds)
{
return std::string(const_cast<GDALDatasetType *>(ds)->GetDriver()->GetName());
}
}
}
} // end namespace
......@@ -254,6 +254,10 @@ private:
itk::RandomPermutation randPerm(numberOfStreamDivisions);
unsigned int index = 0;
// reset seed and step once (itk::RandomPermutation may have used it)
randomGen->SetSeed(GetParameterInt("rand"));
randomGen->GetVariateWithClosedRange();
// TODO : maybe change the approach: at the moment, the sampling process is able to pick a sample twice or more
while (totalSamples < nbsamples)
{
......
......@@ -273,7 +273,7 @@ TrainVectorBase::ExtractSamplesWithLabel(std::string parameterName, std::string
input->PushBack( mv );
if( feature.ogr().IsFieldSet( cFieldIndex ) && cFieldIndex != -1 )
if(cFieldIndex>=0 && ogr::Field(feature,cFieldIndex).HasBeenSet())
target->PushBack( feature.ogr().GetFieldAsInteger( cFieldIndex ) );
else
target->PushBack( 0 );
......
......@@ -23,7 +23,7 @@ otb_module_test()
otb_test_application(NAME apTvSARPolarSynth
APP SARPolarSynth
OPTIONS -in ${INPUTDATA}/RSAT2_AltonaExtract_1000_1000_100_100.hdr
OPTIONS -in ${INPUTDATA}/RSAT2_AltonaExtract_1000_1000_100_100.tif
-out ${TEMP}/resApMultiPolarimetricSynthesis1.tif
-psii 10.0
-khii 0.0
......
......@@ -64,6 +64,8 @@ public:
typedef std::vector<LinePointType> PointListType;
typedef itk::VectorContainer<unsigned long, PointType> PointContainerType;
typedef itk::SmartPointer<PointContainerType> PointContainerPointer;
typedef itk::SizeValueType SizeValueType;
typedef itk::IdentifierType IdentifierType;
/** Returns a reference to the list of the Line points.*/
PointListType& GetPoints(void);
......@@ -72,19 +74,19 @@ public:
void SetPoints(PointListType& newPoints);
/** Return a point in the list given the index */
const SpatialObjectPointType* GetPoint(unsigned long id) const ITK_OVERRIDE
const SpatialObjectPointType* GetPoint(IdentifierType id) const ITK_OVERRIDE
{
return &(m_Points[id]);
}
/** Return a point in the list given the index */
SpatialObjectPointType* GetPoint(unsigned long id) ITK_OVERRIDE
SpatialObjectPointType* GetPoint(IdentifierType id) ITK_OVERRIDE
{
return &(m_Points[id]);
}
/** Return the number of points in the list */
itk::SizeValueType GetNumberOfPoints(void) const ITK_OVERRIDE
SizeValueType GetNumberOfPoints(void) const ITK_OVERRIDE
{
return m_Points.size();
}
......
......@@ -74,7 +74,7 @@ otb_add_test(NAME saTvVectorMultiChannelsPolarimetricSynthesisFilter COMMAND otb
--compare-image ${EPSILON_7} ${BASELINE}/saTvMultiPolarimetricSynthesis1.tif
${TEMP}/resMultiPolarimetricSynthesis1.tif
otbVectorMultiChannelsPolarimetricSynthesisFilter
${INPUTDATA}/RSAT2_AltonaExtract_1000_1000_100_100.hdr
${INPUTDATA}/RSAT2_AltonaExtract_1000_1000_100_100.tif
${TEMP}/resMultiPolarimetricSynthesis1.tif
10.0 # PsiI
0.0 # KhiI
......
......@@ -233,7 +233,7 @@ void VCAImageFilter<TImage>::GenerateData()
vnl_matrix<PrecisionType> A(m_NumberOfEndmembers, m_NumberOfEndmembers);
A.fill(0);
A(m_NumberOfEndmembers - 1, 0) = 1;
typename RandomVariateGeneratorType::Pointer randomGen = RandomVariateGeneratorType::New();
typename RandomVariateGeneratorType::Pointer randomGen = RandomVariateGeneratorType::GetInstance();
for (unsigned int i = 0; i < m_NumberOfEndmembers; ++i)
{
......
......@@ -1766,19 +1766,26 @@ void GDALImageIO::InternalWriteImageInformation(const void* buffer)
/* -------------------------------------------------------------------- */
/* Set the six coefficients of affine geoTransform */
/* -------------------------------------------------------------------- */
itk::VariableLengthVector<double> geoTransform(6);
/// Reporting origin and spacing
// Beware : GDAL origin is at the corner of the top-left pixel
// whereas OTB/ITK origin is at the centre of the top-left pixel
geoTransform[0] = m_Origin[0] - 0.5*m_Spacing[0];
geoTransform[3] = m_Origin[1] - 0.5*m_Spacing[1];
geoTransform[1] = m_Spacing[0];
geoTransform[5] = m_Spacing[1];
// FIXME: Here component 1 and 4 should be replaced by the orientation parameters
geoTransform[2] = 0.;
geoTransform[4] = 0.;
dataset->SetGeoTransform(const_cast<double*>(geoTransform.GetDataPointer()));
if ( vcl_abs(m_Origin[0] - 0.5) > Epsilon
|| vcl_abs(m_Origin[1] - 0.5) > Epsilon
|| vcl_abs(m_Spacing[0] - 1.0) > Epsilon
|| vcl_abs(m_Spacing[1] - 1.0) > Epsilon )
{
// Only set the geotransform if it is not identity (it may erase GCP)
itk::VariableLengthVector<double> geoTransform(6);
/// Reporting origin and spacing
// Beware : GDAL origin is at the corner of the top-left pixel
// whereas OTB/ITK origin is at the centre of the top-left pixel
geoTransform[0] = m_Origin[0] - 0.5*m_Spacing[0];
geoTransform[3] = m_Origin[1] - 0.5*m_Spacing[1];
geoTransform[1] = m_Spacing[0];
geoTransform[5] = m_Spacing[1];
// FIXME: Here component 1 and 4 should be replaced by the orientation parameters
geoTransform[2] = 0.;
geoTransform[4] = 0.;
dataset->SetGeoTransform(const_cast<double*>(geoTransform.GetDataPointer()));
}
/* -------------------------------------------------------------------- */
/* Report metadata. */
......
......@@ -211,7 +211,7 @@ void OGRIOHelper
otb::VectorDataKeywordlist kwl;
for (int fieldNum = 0; fieldNum < feature->GetFieldCount(); ++fieldNum)
{
if (feature->IsFieldSet(fieldNum))
if (ogr::version_proxy::IsFieldSetAndNotNull(feature, fieldNum))
{
kwl.AddField(feature->GetFieldDefnRef(fieldNum), feature->GetRawFieldRef(fieldNum));
}
......
......@@ -1941,7 +1941,7 @@ void TestHelper::DumpOGRFeature(FILE* fpOut, OGRFeature* feature, char** papszOp
poFDefn->GetNameRef(),
OGRFieldDefn::GetFieldTypeName(poFDefn->GetType()));
if (feature->IsFieldSet(iField)) fprintf(fpOut, "%s\n", feature->GetFieldAsString(iField));
if (ogr::version_proxy::IsFieldSetAndNotNull(feature, iField)) fprintf(fpOut, "%s\n", feature->GetFieldAsString(iField));
else fprintf(fpOut, "(null)\n");
}
......
......@@ -71,7 +71,7 @@ set(BOOST_BUILD_COMMAND ${CMAKE_COMMAND}
#NOTE: update _SB_Boost_INCLUDE_DIR below when you change version number
ExternalProject_Add(BOOST
PREFIX BOOST
URL "http://download.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2"
URL "http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2"
URL_MD5 65a840e1a0b13a558ff19eeb2c4f0cbe
BINARY_DIR ${BOOST_SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
......@@ -79,6 +79,7 @@ ExternalProject_Add(BOOST
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
BUILD_COMMAND ${BOOST_BUILD_COMMAND}
INSTALL_COMMAND ""
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
......
......@@ -24,64 +24,41 @@ SETUP_SUPERBUILD(CURL)
# declare dependencies
ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(CURL ZLIB)
if(NOT APPLE)
ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(OPENSSL)
ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(CURL OPENSSL)
endif()
if(MSVC)
if(NOT BUILD_SHARED_LIBS)
message(FATAL_ERROR "static build or curl not supported")
return()
endif()
if(OTB_TARGET_SYSTEM_ARCH_IS_X64)
set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x64")
else()
set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x86")
endif()
set(CURL_INSTALL_DIR_PREFIX "${CURL_INSTALL_DIR_PREFIX}-release-dll-zlib-dll-ipv6-sspi-winssl")
ExternalProject_Add(CURL
ExternalProject_Add(CURL
PREFIX CURL
URL "http://curl.haxx.se/download/curl-7.40.0.tar.gz"
URL_MD5 58943642ea0ed050ab0431ea1caf3a6f
SOURCE_DIR ${CURL_SB_SRC}
BINARY_DIR ${CURL_SB_SRC}/winbuild
BINARY_DIR ${CURL_SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
CMAKE_CACHE_ARGS
${SB_CMAKE_CACHE_ARGS}
-DBUILD_CURL_TESTS:BOOL=OFF
-DBUILD_CURL_EXE:BOOL=ON
-DCMAKE_USE_OPENSSL:BOOL=OFF
-DCMAKE_USE_LIBSSH2:BOOL=OFF
-DCURL_DISABLE_LDAP:BOOL=ON
-DCMAKE_USE_OPENLDAP:BOOL=OFF
-DENABLE_MANUAL:BOOL=OFF
-DENABLE_IPV6:BOOL=OFF
${CURL_SB_CONFIG}
DEPENDS ${CURL_DEPENDENCIES}
CONFIGURE_COMMAND ""
BUILD_COMMAND nmake /f ${CURL_SB_SRC}/winbuild/Makefile.vc mode=dll WITH_ZLIB=dll WITH_DEVEL=${SB_INSTALL_PREFIX}
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
${CURL_SB_SRC}/builds/${CURL_INSTALL_DIR_PREFIX}/ ${SB_INSTALL_PREFIX}
CMAKE_COMMAND ${SB_CMAKE_COMMAND}
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
else(UNIX)
SUPERBUILD_PATCH_SOURCE(CURL)
ExternalProject_Add(CURL
PREFIX CURL
URL "http://curl.haxx.se/download/curl-7.40.0.tar.gz"
URL_MD5 58943642ea0ed050ab0431ea1caf3a6f
BINARY_DIR ${CURL_SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
CMAKE_CACHE_ARGS
${SB_CMAKE_CACHE_ARGS}
-DBUILD_CURL_TESTS:BOOL=OFF
-DBUILD_CURL_EXE:BOOL=ON
-DCMAKE_USE_OPENSSL:BOOL=${SB_ENABLE_OPENSSL_CURL}
-DCMAKE_USE_LIBSSH2:BOOL=OFF
-DCURL_DISABLE_LDAP:BOOL=ON
-DCMAKE_USE_OPENLDAP:BOOL=OFF
${CURL_SB_CONFIG}
DEPENDS ${CURL_DEPENDENCIES}
CMAKE_COMMAND ${SB_CMAKE_COMMAND}
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
set(_SB_CURL_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
if(WIN32)
set(_SB_CURL_LIBRARY "${SB_INSTALL_PREFIX}/lib/libcurl_imp.lib")
elseif(UNIX)
set(_SB_CURL_LIBRARY ${SB_INSTALL_PREFIX}/lib/libcurl${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()
SUPERBUILD_UPDATE_CMAKE_VARIABLES(CURL TRUE)
......@@ -24,7 +24,7 @@ SETUP_SUPERBUILD(EXPAT)
ExternalProject_Add(EXPAT
PREFIX EXPAT
URL "http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download"
URL "http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz"
URL_MD5 dd7dab7a5fea97d2a6a43f511449b7cd
BINARY_DIR ${EXPAT_SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
......@@ -35,6 +35,10 @@ ExternalProject_Add(EXPAT
-DBUILD_tests:BOOL=OFF
-DBUILD_tools:BOOL=OFF
CMAKE_COMMAND ${SB_CMAKE_COMMAND}
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
SUPERBUILD_UPDATE_CMAKE_VARIABLES(EXPAT FALSE)
......@@ -54,6 +54,7 @@ ExternalProject_Add(FFTWF
--disable-fortran
--disable-dependency-tracking
DEPENDS ${FFTW_DEPENDENCIES}
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
......@@ -80,6 +81,8 @@ ExternalProject_Add(FFTWD
--disable-fortran
--disable-dependency-tracking
DEPENDS FFTWF
LOG_DOWNLOAD 1