diff --git a/Modules/Adapters/GdalAdapters/include/otbOGRVersionProxy.h b/Modules/Adapters/GdalAdapters/include/otbOGRVersionProxy.h index 12c94cd02c047bc2034a67cefd64c2b70fbd8227..7fdc308413d2a912eba471b90fe74576e1ef5310 100644 --- a/Modules/Adapters/GdalAdapters/include/otbOGRVersionProxy.h +++ b/Modules/Adapters/GdalAdapters/include/otbOGRVersionProxy.h @@ -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 diff --git a/Modules/Adapters/GdalAdapters/src/CMakeLists.txt b/Modules/Adapters/GdalAdapters/src/CMakeLists.txt index 95a01673319b92719b860e2d4da2ed755d7b1ca1..4ba50ff1e286f05842703510931bffec1d5f0f21 100644 --- a/Modules/Adapters/GdalAdapters/src/CMakeLists.txt +++ b/Modules/Adapters/GdalAdapters/src/CMakeLists.txt @@ -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} diff --git a/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx b/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx index 3b54c06c60d1041f5837f1c46a7b22bb4387713f..49f95f053546c6f59190ef88ae6d28cee0f19110 100644 --- a/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx +++ b/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx @@ -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 diff --git a/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy2x.cxx b/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy.cxx similarity index 62% rename from Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy2x.cxx rename to Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy.cxx index 2ca46ae46a00029da877f3b16ef6e03739fea4fc..22b7a612ca3f7f557eeed7abe2da3c2e1d047fe9 100644 --- a/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy2x.cxx +++ b/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy.cxx @@ -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 + diff --git a/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy1x.cxx b/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy1x.cxx deleted file mode 100644 index 47c915342349732a594d0a5360c1ecd8bfe1ae5e..0000000000000000000000000000000000000000 --- a/Modules/Adapters/GdalAdapters/src/otbOGRVersionProxy1x.cxx +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 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 diff --git a/Modules/Applications/AppClassification/app/otbSOMClassification.cxx b/Modules/Applications/AppClassification/app/otbSOMClassification.cxx index 18e12db92ef7836209082b73816c04196be2c9bf..86572e90ad0eebd83dbc8ec8ee3e338677984af6 100644 --- a/Modules/Applications/AppClassification/app/otbSOMClassification.cxx +++ b/Modules/Applications/AppClassification/app/otbSOMClassification.cxx @@ -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) { diff --git a/Modules/Applications/AppClassification/include/otbTrainVectorBase.txx b/Modules/Applications/AppClassification/include/otbTrainVectorBase.txx index e24c4165de2b6a1b1bf57c672e5ec69a1ef825a2..ac72630fd08ce84b22f64e329eaae10796f69d75 100644 --- a/Modules/Applications/AppClassification/include/otbTrainVectorBase.txx +++ b/Modules/Applications/AppClassification/include/otbTrainVectorBase.txx @@ -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 ); diff --git a/Modules/Applications/AppSARPolarSynth/test/CMakeLists.txt b/Modules/Applications/AppSARPolarSynth/test/CMakeLists.txt index e77967b05c1ca08b7f9d908a5ebce567a2273572..ebdaca7c686939019b1e019b25515494e919043d 100644 --- a/Modules/Applications/AppSARPolarSynth/test/CMakeLists.txt +++ b/Modules/Applications/AppSARPolarSynth/test/CMakeLists.txt @@ -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 diff --git a/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h b/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h index cc04dacdd8526f661aa9209b94cdff9e3fb44aa9..a4adf2d0548ce1eb525d6b1804eb484455d12961 100644 --- a/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h +++ b/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h @@ -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(); } diff --git a/Modules/Filtering/Polarimetry/test/CMakeLists.txt b/Modules/Filtering/Polarimetry/test/CMakeLists.txt index 73045f5cd8b40c0395a34604f11abb85dceeaa24..d1c77627cf5316b3353b3eab49f760faca17a690 100644 --- a/Modules/Filtering/Polarimetry/test/CMakeLists.txt +++ b/Modules/Filtering/Polarimetry/test/CMakeLists.txt @@ -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 diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx index 919e3a6d322dc4d5d9cc2e2cf88d16fc457f8629..014ff8e7eef8cc32e52e8154eb583dbab4142020 100644 --- a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx +++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.txx @@ -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) { diff --git a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx index 4e3b75a54835bd4fdd132f431fecc2336806d0fe..812c938e6b86b6dd5005abc9939e5275b639f8e5 100644 --- a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx +++ b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx @@ -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. */ diff --git a/Modules/IO/IOGDAL/src/otbOGRIOHelper.cxx b/Modules/IO/IOGDAL/src/otbOGRIOHelper.cxx index 8248ef8a1df7019224761445e628f1f59e3d573a..53b61999699415cf18f36e1f182cf698560fbe4a 100644 --- a/Modules/IO/IOGDAL/src/otbOGRIOHelper.cxx +++ b/Modules/IO/IOGDAL/src/otbOGRIOHelper.cxx @@ -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)); } diff --git a/Modules/IO/TestKernel/src/otbTestHelper.cxx b/Modules/IO/TestKernel/src/otbTestHelper.cxx index dfdd2345b95d7649b02cf56091b80d7a309f7769..9c1559a7138dbd3da2f5917ee6d2fe66d4dae441 100644 --- a/Modules/IO/TestKernel/src/otbTestHelper.cxx +++ b/Modules/IO/TestKernel/src/otbTestHelper.cxx @@ -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"); } diff --git a/SuperBuild/CMake/External_boost.cmake b/SuperBuild/CMake/External_boost.cmake index 8dc75b7a2d4a8e1943dfb19b78a3df7d22bd0851..baff81fc2a466ddd4d98c2d2c7af842de5d76bce 100644 --- a/SuperBuild/CMake/External_boost.cmake +++ b/SuperBuild/CMake/External_boost.cmake @@ -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 diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake index fc6fe75d08b1005ea14b66e9e34df5f5398c4c0d..8728bdeb7e8a02c4af70125d157e3cd492862015 100644 --- a/SuperBuild/CMake/External_curl.cmake +++ b/SuperBuild/CMake/External_curl.cmake @@ -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) diff --git a/SuperBuild/CMake/External_expat.cmake b/SuperBuild/CMake/External_expat.cmake index 2991992a9875afa5735d9a4478288065691c6e14..d59f4391faf8a06f7d8b84d786afef692244a44e 100644 --- a/SuperBuild/CMake/External_expat.cmake +++ b/SuperBuild/CMake/External_expat.cmake @@ -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) diff --git a/SuperBuild/CMake/External_fftw.cmake b/SuperBuild/CMake/External_fftw.cmake index a6969ab7b225836c475f196d01de19c51383522c..ce1bdbea7f377f3402465e0d31867f46bb05922f 100644 --- a/SuperBuild/CMake/External_fftw.cmake +++ b/SuperBuild/CMake/External_fftw.cmake @@ -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 + LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 ) diff --git a/SuperBuild/CMake/External_freetype.cmake b/SuperBuild/CMake/External_freetype.cmake index 014e35f0ccbc44730f248d9d3f26e9c4a8cb0c48..1af53391eb1546030311305916d1e902696222fa 100644 --- a/SuperBuild/CMake/External_freetype.cmake +++ b/SuperBuild/CMake/External_freetype.cmake @@ -39,6 +39,10 @@ ExternalProject_Add(FREETYPE ${SB_CMAKE_CACHE_ARGS} ${FREETYPE_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_FREETYPE_INCLUDE_DIRS ${SB_INSTALL_PREFIX}/include/freetype2) diff --git a/SuperBuild/CMake/External_gdal.cmake b/SuperBuild/CMake/External_gdal.cmake index aa87dc9f44e755b5e1824c90f9a2b01f682c4e45..fd7ed1836132c30fe132e67c14c3add1ca92f11e 100644 --- a/SuperBuild/CMake/External_gdal.cmake +++ b/SuperBuild/CMake/External_gdal.cmake @@ -65,7 +65,6 @@ if(UNIX) ${SB_CONFIGURE_ARGS} --with-cfitsio=no --with-dods-root=no - --with-dwgdirect=no --with-ecw=no --with-epsilon=no --with-fme=no @@ -100,6 +99,8 @@ if(UNIX) --with-xerces=no --with-xml2=no --with-pg=no + --with-webp=no + --with-threads=yes ${GDAL_SB_CONFIG} ${GDAL_SB_EXTRA_OPTIONS} ) @@ -107,8 +108,6 @@ if(UNIX) #set(GDAL_INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install) else(MSVC) - STRING(REGEX REPLACE "/$" "" CMAKE_WIN_INSTALL_PREFIX ${SB_INSTALL_PREFIX}) - STRING(REGEX REPLACE "/" "\\\\" CMAKE_WIN_INSTALL_PREFIX ${CMAKE_WIN_INSTALL_PREFIX}) configure_file( ${CMAKE_SOURCE_DIR}/patches/GDAL/nmake_gdal_extra.opt.in ${CMAKE_BINARY_DIR}/nmake_gdal_extra.opt) @@ -133,8 +132,8 @@ endif() ExternalProject_Add(GDAL PREFIX GDAL - URL "http://download.osgeo.org/gdal/2.1.0/gdal-2.1.0.tar.gz" - URL_MD5 0fc165cd947c54b132204233dfb243f1 + URL "http://download.osgeo.org/gdal/2.2.1/gdal-2.2.1.tar.gz" + URL_MD5 785acf2b0cbf9d56d37c9044d0ee2505 SOURCE_DIR ${GDAL_SB_SRC} BINARY_DIR ${GDAL_SB_SRC} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -143,6 +142,7 @@ ExternalProject_Add(GDAL CONFIGURE_COMMAND ${GDAL_CONFIGURE_COMMAND} BUILD_COMMAND ${GDAL_BUILD_COMMAND} INSTALL_COMMAND ${GDAL_INSTALL_COMMAND} + LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 diff --git a/SuperBuild/CMake/External_geos.cmake b/SuperBuild/CMake/External_geos.cmake index f129a04379cd304f097e5425df52b29a0c73e913..921aa4d667cf4ba7f621cb8965ca47af08742c61 100644 --- a/SuperBuild/CMake/External_geos.cmake +++ b/SuperBuild/CMake/External_geos.cmake @@ -22,23 +22,10 @@ INCLUDE_ONCE_MACRO(GEOS) SETUP_SUPERBUILD(GEOS) -if(MSVC) - set(GEOS_PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/patches/GEOS/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/patches/GEOS/nmake.opt - ${GEOS_SB_SRC}) - set(GEOS_CMAKE_COMMAND ${SB_CMAKE_COMMAND} -DGEOS_SB_SRC=${GEOS_SB_SRC}) - -else() - set(GEOS_PATCH_COMMAND) - set(GEOS_CMAKE_COMMAND ${SB_CMAKE_COMMAND}) - -endif() - ExternalProject_Add(GEOS PREFIX GEOS - URL "http://download.osgeo.org/geos/geos-3.5.0.tar.bz2" - URL_MD5 136842690be7f504fba46b3c539438dd + URL "http://download.osgeo.org/geos/geos-3.6.1.tar.bz2" + URL_MD5 c97e338b3bc81f9848656e9d693ca6cc SOURCE_DIR ${GEOS_SB_SRC} BINARY_DIR ${GEOS_SB_SRC} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -46,17 +33,23 @@ ExternalProject_Add(GEOS CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} -DGEOS_ENABLE_TESTS:BOOL=OFF - PATCH_COMMAND ${GEOS_PATCH_COMMAND} + -DGEOS_ENABLE_MACOSX_FRAMEWORK:BOOL=OFF + -DGEOS_BUILD_STATIC:BOOL=${BUILD_STATIC_LIBS} + -DGEOS_BUILD_SHARED:BOOL=${BUILD_SHARED_LIBS} CMAKE_COMMAND ${GEOS_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) -if(NOT MSVC) - SUPERBUILD_PATCH_SOURCE(GEOS) -endif() +# Patch still needed with version 3.6.1 to avoid error during CMake configuration +# See https://trac.osgeo.org/geos/ticket/753 +SUPERBUILD_PATCH_SOURCE(GEOS) set(_SB_GEOS_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) - set(_SB_GEOS_LIBRARY ${SB_INSTALL_PREFIX}/lib/geos_i.lib ) + set(_SB_GEOS_LIBRARY ${SB_INSTALL_PREFIX}/lib/geos.lib ) elseif(UNIX) set(_SB_GEOS_LIBRARY ${SB_INSTALL_PREFIX}/lib/libgeos${CMAKE_SHARED_LIBRARY_SUFFIX}) -endif() \ No newline at end of file +endif() diff --git a/SuperBuild/CMake/External_geotiff.cmake b/SuperBuild/CMake/External_geotiff.cmake index 99babdd855a58186668364bbea4be881fb3ff479..3bb24a3202b39db9724a8261da78bf7fdfdf86fc 100644 --- a/SuperBuild/CMake/External_geotiff.cmake +++ b/SuperBuild/CMake/External_geotiff.cmake @@ -35,59 +35,28 @@ ADD_SUPERBUILD_CMAKE_VAR(GEOTIFF ZLIB_LIBRARY) ADD_SUPERBUILD_CMAKE_VAR(GEOTIFF JPEG_INCLUDE_DIR) ADD_SUPERBUILD_CMAKE_VAR(GEOTIFF JPEG_LIBRARY) -#RK: we are forced to use autoconf on osx due to cmake's find_* functions -#Do we need to use the same of Linux ? -if(UNIX) - set(GEOTIFF_SB_CONFIG) - ADD_SUPERBUILD_CONFIGURE_VAR(GEOTIFF PROJ_ROOT --with-proj) - ADD_SUPERBUILD_CONFIGURE_VAR(GEOTIFF TIFF_ROOT --with-libtiff) - ADD_SUPERBUILD_CONFIGURE_VAR(GEOTIFF JPEG_ROOT --with-jpeg) - ADD_SUPERBUILD_CONFIGURE_VAR(GEOTIFF ZLIB_ROOT --with-libz) +ExternalProject_Add(GEOTIFF + PREFIX GEOTIFF + URL "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.4.2.tar.gz" + URL_MD5 96ab80e0d4eff7820579957245d844f8 + SOURCE_DIR ${GEOTIFF_SB_SRC} + BINARY_DIR ${GEOTIFF_SB_BUILD_DIR} + INSTALL_DIR ${SB_INSTALL_PREFIX} + DOWNLOAD_DIR ${DOWNLOAD_LOCATION} + DEPENDS ${GEOTIFF_DEPENDENCIES} + CMAKE_CACHE_ARGS + ${SB_CMAKE_CACHE_ARGS} + -DBUILD_TESTING:BOOL=OFF + -DPROJ4_OSGEO4W_HOME:PATH=${SB_INSTALL_PREFIX} + ${GEOTIFF_SB_CONFIG} + CMAKE_COMMAND ${SB_CMAE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 + ) - ExternalProject_Add(GEOTIFF - PREFIX GEOTIFF - URL "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.4.1.tar.gz" - URL_MD5 48bdf817e6e7a37671cc1f41b01e10fc - SOURCE_DIR ${GEOTIFF_SB_SRC} - BINARY_DIR ${GEOTIFF_SB_SRC} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - DEPENDS ${GEOTIFF_DEPENDENCIES} - CONFIGURE_COMMAND - ${SB_ENV_CONFIGURE_CMD} - ${GEOTIFF_SB_SRC}/configure - ${SB_CONFIGURE_ARGS} - ${GEOTIFF_SB_CONFIG} - LOG_BUILD 1 - LOG_INSTALL 1 - ) - - # [LOG_CONFIGURE 1] # Wrap configure in script to log output - # [LOG_BUILD 1] # Wrap build in script to log output - # [LOG_TEST 1] # Wrap test in script to log output - # [LOG_INSTALL 1] # Wrap install in script to log output - SUPERBUILD_PATCH_SOURCE(GEOTIFF) - -else() - - ExternalProject_Add(GEOTIFF - PREFIX GEOTIFF - URL "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.4.1.tar.gz" - URL_MD5 48bdf817e6e7a37671cc1f41b01e10fc - SOURCE_DIR ${GEOTIFF_SB_SRC} - BINARY_DIR ${GEOTIFF_SB_BUILD_DIR} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - DEPENDS ${GEOTIFF_DEPENDENCIES} - CMAKE_CACHE_ARGS - ${SB_CMAKE_CACHE_ARGS} - -DBUILD_TESTING:BOOL=OFF - -DPROJ4_OSGEO4W_HOME:PATH=${SB_INSTALL_PREFIX} - ${GEOTIFF_SB_CONFIG} - CMAKE_COMMAND ${SB_CMAKE_COMMAND} - ) - -endif() +SUPERBUILD_PATCH_SOURCE(GEOTIFF) set(_SB_GEOTIFF_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) diff --git a/SuperBuild/CMake/External_glew.cmake b/SuperBuild/CMake/External_glew.cmake index 769ba0b808c3b8e83539e3dce0c3bb90501aad56..3f370e28e0642d584cfbdecfb881fa28d71a07e4 100644 --- a/SuperBuild/CMake/External_glew.cmake +++ b/SuperBuild/CMake/External_glew.cmake @@ -24,13 +24,17 @@ SETUP_SUPERBUILD(GLEW) ExternalProject_Add(GLEW PREFIX GLEW - URL "https://sourceforge.net/projects/glew/files/glew/1.13.0/glew-1.13.0.tgz/download" + URL "https://downloads.sourceforge.net/project/glew/glew/1.13.0/glew-1.13.0.tgz" URL_MD5 7cbada3166d2aadfc4169c4283701066 SOURCE_DIR ${GLEW_SB_SRC} BINARY_DIR ${GLEW_SB_BUILD_DIR} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} INSTALL_DIR ${SB_INSTALL_PREFIX} CONFIGURE_COMMAND ${SB_CMAKE_COMMAND} ${SB_CMAKE_CACHE_ARGS} -DBUILD_UTILS:BOOL=OFF ${GLEW_SB_SRC}/build/cmake/ + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) SUPERBUILD_PATCH_SOURCE(GLEW) diff --git a/SuperBuild/CMake/External_glfw.cmake b/SuperBuild/CMake/External_glfw.cmake index ed7285bd7cfff094d8754c1feb65e8bf09e0b29b..62e2ee046d0dbd1f1b83c6adb2ef13a834d4a9e0 100644 --- a/SuperBuild/CMake/External_glfw.cmake +++ b/SuperBuild/CMake/External_glfw.cmake @@ -35,4 +35,10 @@ ExternalProject_Add(GLFW -DGLFW_BUILD_DOCS:BOOL=OFF -DGLFW_BUILD_TESTS:BOOL=OFF CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) + +SUPERBUILD_PATCH_SOURCE(GLFW) diff --git a/SuperBuild/CMake/External_glut.cmake b/SuperBuild/CMake/External_glut.cmake index 3299afd9b35d353890c6775ffffe88ccf198757a..8894a4931c3619b58bb01125b85494ecf2fbb37c 100644 --- a/SuperBuild/CMake/External_glut.cmake +++ b/SuperBuild/CMake/External_glut.cmake @@ -53,6 +53,10 @@ ExternalProject_Add(GLUT DOWNLOAD_DIR ${DOWNLOAD_LOCATION} PATCH_COMMAND ${GLUT_PATCH_COMMAND} CONFIGURE_COMMAND ${GLUT_CONFIGURE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_GLUT_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_itk.cmake b/SuperBuild/CMake/External_itk.cmake index d46abbc7f9e55233b27047cca25a64244af3daa5..a96dc75196ce61766cb5e8ad9f491e83a163cb63 100644 --- a/SuperBuild/CMake/External_itk.cmake +++ b/SuperBuild/CMake/External_itk.cmake @@ -152,14 +152,14 @@ set(ITK_SB_COMPILATION_FLAGS #variables are later used in packaging set(SB_ITK_VERSION_MAJOR "4") -set(SB_ITK_VERSION_MINOR "10") +set(SB_ITK_VERSION_MINOR "12") set(_SB_ITK_DIR ${SB_INSTALL_PREFIX}/lib/cmake/ITK-${SB_ITK_VERSION_MAJOR}.${SB_ITK_VERSION_MINOR}) ExternalProject_Add(ITK PREFIX ITK - URL "http://downloads.sourceforge.net/project/itk/itk/4.10/InsightToolkit-4.10.0.tar.gz" - URL_MD5 8c67ba296da3835fb67bb29d98dcff3e + URL "https://sourceforge.net/projects/itk/files/itk/4.12/InsightToolkit-4.12.0.tar.gz" + URL_MD5 561a403f93c88c64085b5623e8e61f79 SOURCE_DIR ${ITK_SB_SRC} BINARY_DIR ${ITK_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -180,6 +180,10 @@ ExternalProject_Add(ITK ${ITK_SB_CONFIG} DEPENDS ${ITK_DEPENDENCIES} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) SUPERBUILD_PATCH_SOURCE(ITK) diff --git a/SuperBuild/CMake/External_jpeg.cmake b/SuperBuild/CMake/External_jpeg.cmake index 0a4fca1b69d3debed537887ce4d71ecf7da60679..38e1460e508505e880d72656f47142ce118d3ee2 100644 --- a/SuperBuild/CMake/External_jpeg.cmake +++ b/SuperBuild/CMake/External_jpeg.cmake @@ -45,13 +45,17 @@ endif() ExternalProject_Add(JPEG PREFIX JPEG - URL "http://sourceforge.net/projects/libjpeg-turbo/files/1.4.1/libjpeg-turbo-1.4.1.tar.gz" + URL "http://downloads.sourceforge.net/project/libjpeg-turbo/1.4.1/libjpeg-turbo-1.4.1.tar.gz" URL_MD5 b1f6b84859a16b8ebdcda951fa07c3f2 SOURCE_DIR ${JPEG_SB_SRC} BINARY_DIR ${JPEG_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} CONFIGURE_COMMAND ${JPEG_CONFIGURE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) SUPERBUILD_PATCH_SOURCE(JPEG) diff --git a/SuperBuild/CMake/External_libkml.cmake b/SuperBuild/CMake/External_libkml.cmake index 4d412687de14f6a74ef470cc02d0431713f6773b..e330ab05f7f5809a07ebf78dd7f0a980dde81522 100644 --- a/SuperBuild/CMake/External_libkml.cmake +++ b/SuperBuild/CMake/External_libkml.cmake @@ -44,7 +44,10 @@ ExternalProject_Add(LIBKML CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} ${LIBKML_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} - LOG_BUILD 1 + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_LIBKML_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_libsvm.cmake b/SuperBuild/CMake/External_libsvm.cmake index 4a903c3e59c2d3bfe2ef7adc802051f34d19f33e..435c6d280c5faeb2bf5d2152cc3381c16a9f783b 100644 --- a/SuperBuild/CMake/External_libsvm.cmake +++ b/SuperBuild/CMake/External_libsvm.cmake @@ -35,6 +35,10 @@ ExternalProject_Add(LIBSVM PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/patches/LIBSVM/CMakeLists.txt ${LIBSVM_SB_SRC} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_LIBSVM_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_muparser.cmake b/SuperBuild/CMake/External_muparser.cmake index 20bb3ca23b068de7b6fb6ca0af2b4f991a9ac19f..669cd29da28b2979529ca4b5da69608c66ac2aae 100644 --- a/SuperBuild/CMake/External_muparser.cmake +++ b/SuperBuild/CMake/External_muparser.cmake @@ -35,6 +35,10 @@ ExternalProject_Add(MUPARSER PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/patches/MUPARSER/CMakeLists.txt ${MUPARSER_SB_SRC} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) -SUPERBUILD_UPDATE_CMAKE_VARIABLES(MUPARSER FALSE) \ No newline at end of file +SUPERBUILD_UPDATE_CMAKE_VARIABLES(MUPARSER FALSE) diff --git a/SuperBuild/CMake/External_muparserx.cmake b/SuperBuild/CMake/External_muparserx.cmake index a946a0da64a7e44fcc6f45e329015fa9272bf91d..e67b3974ad51cb504eb75cd31aa8f64153acde72 100644 --- a/SuperBuild/CMake/External_muparserx.cmake +++ b/SuperBuild/CMake/External_muparserx.cmake @@ -42,6 +42,10 @@ ExternalProject_Add(MUPARSERX ${MUPARSERX_FLAGS} CMAKE_COMMAND ${SB_CMAKE_COMMAND} DEPENDS ${MUPARSERX_DEPENDENCIES} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) #Patch mpParserMessageProvider.cpp. This patch is integrated upstream but not yet released (last release is 4.0.7) diff --git a/SuperBuild/CMake/External_mvd.cmake b/SuperBuild/CMake/External_mvd.cmake deleted file mode 100644 index b3bf91b18f2b96a49e94fc8d1186f6fe75ab3abe..0000000000000000000000000000000000000000 --- a/SuperBuild/CMake/External_mvd.cmake +++ /dev/null @@ -1,56 +0,0 @@ -# -# 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. -# - -if( __EXTERNAL_MVD__) - return() -else() - set(__EXTERNAL_MVD__ 1) -endif() - -SETUP_SUPERBUILD(MVD) - -set(MONTEVERDI_GIT_TAG "develop" CACHE STRING "branch name of monteverdi to build. Default is 'develop'") - -# declare dependencies -ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(MVD OTB QWT QT4) - -set(MVD_SB_CONFIG) -ADD_SUPERBUILD_CMAKE_VAR(MVD OTB_DIR) -ADD_SUPERBUILD_CMAKE_VAR(MVD QWT_INCLUDE_DIR) -ADD_SUPERBUILD_CMAKE_VAR(MVD QWT_LIBRARY) -ADD_SUPERBUILD_CMAKE_VAR(MVD QT_QMAKE_EXECUTABLE) - -#TODO: control build testing via cmake variable properly - -ExternalProject_Add(MVD - PREFIX MVD - GIT_REPOSITORY "https://git@git.orfeo-toolbox.org/git/monteverdi2.git" - GIT_TAG "${MONTEVERDI_GIT_TAG}" - SOURCE_DIR ${MVD_SB_SRC} - BINARY_DIR ${MVD_SB_BUILD_DIR} - INSTALL_DIR ${CMAKE_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - DEPENDS ${MVD_DEPENDENCIES} - CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} - -DMonteverdi_INSTALL_LIB_DIR:STRING=lib - -DOTB_DATA_ROOT:STRING=${OTB_DATA_ROOT} - ${MVD_SB_CONFIG} - CMAKE_COMMAND ${SB_CMAKE_COMMAND} -) diff --git a/SuperBuild/CMake/External_opencv.cmake b/SuperBuild/CMake/External_opencv.cmake index 854d09de427b0a9c86456694c46f98b3ca55e8f4..675777f3e8ef080192d0bfdd6741b40ed8332237 100644 --- a/SuperBuild/CMake/External_opencv.cmake +++ b/SuperBuild/CMake/External_opencv.cmake @@ -100,6 +100,10 @@ ExternalProject_Add(OPENCV ${OPENCV_SB_CONFIG} DEPENDS ${OPENCV_DEPENDENCIES} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) diff --git a/SuperBuild/CMake/External_openjpeg.cmake b/SuperBuild/CMake/External_openjpeg.cmake index cabb84509f4821470b7c09da4b8ce7cd52057ca4..09de9cb472905cfb0473061051b6447d217ec556 100644 --- a/SuperBuild/CMake/External_openjpeg.cmake +++ b/SuperBuild/CMake/External_openjpeg.cmake @@ -56,9 +56,13 @@ ExternalProject_Add(OPENJPEG ${OPENJPEG_SB_CONFIG} DEPENDS ${OPENJPEG_DEPENDENCIES} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) SUPERBUILD_UPDATE_CMAKE_VARIABLES(OPENJPEG FALSE) -#Apply patches to openjpeg (for now Even Roualt optim) +#Apply patches to openjpeg (for now Even Rouault optimizations) SUPERBUILD_PATCH_SOURCE(OPENJPEG "-ut") diff --git a/SuperBuild/CMake/External_openssl.cmake b/SuperBuild/CMake/External_openssl.cmake index e398c44a89274d9ba61ea0adcdb424608f0d1cd3..7e20c05fb4fd4698ca683c638914d840de68ff64 100644 --- a/SuperBuild/CMake/External_openssl.cmake +++ b/SuperBuild/CMake/External_openssl.cmake @@ -25,32 +25,47 @@ SETUP_SUPERBUILD(OPENSSL) ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(OPENSSL ZLIB) if(WIN32) + find_program(PERL_COMMAND NAMES perl perl.exe) + if(NOT PERL_COMMAND) + message(FATAL_ERROR "PERL_COMMAND not set. it is needed to configure openssl!") + return() + endif() + set(OPENSSL_BUILD_ARCH "linux-x32") set(OPENSSL_BUILD_ARCH "VC-WIN32") + set(OPENSSL_CONFIGURE_CMD "${OPENSSL_SB_SRC}/ms/do_ms.bat") if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(OPENSSL_BUILD_ARCH "linux-x86_64") set(OPENSSL_BUILD_ARCH "VC-WIN64A") + set(OPENSSL_CONFIGURE_CMD "${OPENSSL_SB_SRC}/ms/do_win64a.bat") endif() endif() if(MSVC) - STRING(REGEX REPLACE "/$" "" CMAKE_WIN_INSTALL_PREFIX ${SB_INSTALL_PREFIX}) - STRING(REGEX REPLACE "/" "\\\\" CMAKE_WIN_INSTALL_PREFIX ${CMAKE_WIN_INSTALL_PREFIX}) ExternalProject_Add(OPENSSL PREFIX OPENSSL URL "https://github.com/openssl/openssl/archive/OpenSSL_1_0_1p.tar.gz" URL_MD5 6bc1f9a9d9d474aceceb377e758e48ec DEPENDS ${OPENSSL_DEPENDENCIES} - BINARY_DIR ${OPENSSL_SB_BUILD_DIR} + BINARY_DIR ${OPENSSL_SB_SRC} INSTALL_DIR ${SB_INSTALL_PREFIX} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - PATCH_COMMAND ${CMAKE_COMMAND} -E copy_directory ${OPENSSL_SB_SRC} ${OPENSSL_SB_BUILD_DIR} - CONFIGURE_COMMAND + PATCH_COMMAND ${SB_ENV_CONFIGURE_CMD} - ${CMAKE_COMMAND} -E chdir ${OPENSSL_SB_BUILD_DIR} - perl Configure ${OPENSSL_BUILD_ARCH} no-asm --prefix=${CMAKE_WIN_INSTALL_PREFIX} --openssldir=${CMAKE_WIN_INSTALL_PREFIX} - BUILD_COMMAND ms/do_ms.bat - INSTALL_COMMAND nmake -f ms/ntdll.mak install + ${PERL_COMMAND} ${OPENSSL_SB_SRC}/Configure + ${OPENSSL_BUILD_ARCH} + no-asm + "--prefix=${SB_INSTALL_PREFIX_NATIVE}" + "--openssldir=${SB_INSTALL_PREFIX_NATIVE}" + CONFIGURE_COMMAND + ${SB_ENV_CONFIGURE_CMD} + ${OPENSSL_CONFIGURE_CMD} + BUILD_COMMAND nmake -f "${OPENSSL_SB_SRC}/ms/ntdll.mak" + INSTALL_COMMAND nmake -f "${OPENSSL_SB_SRC}/ms/ntdll.mak" install + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) else(UNIX) @@ -59,16 +74,25 @@ else(UNIX) DEPENDS ${OPENSSL_DEPENDENCIES} URL "https://github.com/openssl/openssl/archive/OpenSSL_1_0_1p.tar.gz" URL_MD5 6bc1f9a9d9d474aceceb377e758e48ec - BINARY_DIR ${OPENSSL_SB_BUILD_DIR} + BINARY_DIR ${OPENSSL_SB_SRC} INSTALL_DIR ${SB_INSTALL_PREFIX} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - PATCH_COMMAND ${CMAKE_COMMAND} -E copy_directory ${OPENSSL_SB_SRC} ${OPENSSL_SB_BUILD_DIR} CONFIGURE_COMMAND ${SB_ENV_CONFIGURE_CMD} - ${CMAKE_COMMAND} -E chdir ${OPENSSL_SB_BUILD_DIR} ./config ${OPENSSL_BUILD_ARCH} - --prefix=${SB_INSTALL_PREFIX} shared zlib zlib-dynamic -I${SB_INSTALL_PREFIX}/include -L${SB_INSTALL_PREFIX}/lib + ${OPENSSL_SB_SRC}/config ${OPENSSL_BUILD_ARCH} + "--prefix=${SB_INSTALL_PREFIX}" + shared + zlib + zlib-dynamic + "-I${SB_INSTALL_PREFIX}/include" + "-L${SB_INSTALL_PREFIX}/lib" BUILD_COMMAND $(MAKE) - INSTALL_COMMAND $(MAKE) install) + INSTALL_COMMAND $(MAKE) install + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 + ) ExternalProject_Add_Step(OPENSSL remove_static COMMAND ${CMAKE_COMMAND} -E remove @@ -82,7 +106,7 @@ endif() set(_SB_OPENSSL_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) - set(_SB_OPENSSL_LIBRARY ${SB_INSTALL_PREFIX}/lib/libcurl.lib) + set(_SB_OPENSSL_LIBRARY "${SB_INSTALL_PREFIX}/lib/ssleay32.lib;${SB_INSTALL_PREFIX}/lib/libeay32.lib") elseif(UNIX) set(_SB_OPENSSL_LIBRARY ${SB_INSTALL_PREFIX}/lib/libssl${CMAKE_SHARED_LIBRARY_SUFFIX}) endif() diff --git a/SuperBuild/CMake/External_openthreads.cmake b/SuperBuild/CMake/External_openthreads.cmake index bf783fd625a753991e6311078a2c392ad5328ff4..43661aa81cbdc81d382f5cec078dca61c860f691 100644 --- a/SuperBuild/CMake/External_openthreads.cmake +++ b/SuperBuild/CMake/External_openthreads.cmake @@ -37,6 +37,10 @@ ExternalProject_Add(OPENTHREADS PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/patches/OPENTHREADS/CMakeLists.txt ${OPENTHREADS_SB_SRC} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_OPENTHREADS_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_ossim.cmake b/SuperBuild/CMake/External_ossim.cmake index 8347a3cb854486d43b833a8105138e557f2c360d..04d89d5f3ba6c207b726d4c9cfc4351d06b275b3 100644 --- a/SuperBuild/CMake/External_ossim.cmake +++ b/SuperBuild/CMake/External_ossim.cmake @@ -67,6 +67,10 @@ ExternalProject_Add(OSSIM ${OSSIM_SB_CONFIG} DEPENDS ${OSSIM_DEPENDENCIES} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) ExternalProject_Add_Step(OSSIM patch_no_cmakelists diff --git a/SuperBuild/CMake/External_pcre.cmake b/SuperBuild/CMake/External_pcre.cmake index 717f09f576d2fe2f638a154c33019bc8c300fdd8..aefa89e5b535315fef74cee9bff3ed2d0bbb18ba 100644 --- a/SuperBuild/CMake/External_pcre.cmake +++ b/SuperBuild/CMake/External_pcre.cmake @@ -25,7 +25,7 @@ if(MSVC) else() ExternalProject_Add(PCRE PREFIX PCRE - URL "http://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz/download" + URL "http://downloads.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.tar.gz" URL_MD5 ff7b4bb14e355f04885cf18ff4125c98 BINARY_DIR ${PCRE_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} diff --git a/SuperBuild/CMake/External_png.cmake b/SuperBuild/CMake/External_png.cmake index 1d2d16148dddfef8363f12a002785ca364d96b57..cd149a67b88e1741c912623d7f8f28957a228850 100644 --- a/SuperBuild/CMake/External_png.cmake +++ b/SuperBuild/CMake/External_png.cmake @@ -30,7 +30,7 @@ ADD_SUPERBUILD_CMAKE_VAR(PNG ZLIB_LIBRARY) ExternalProject_Add(PNG PREFIX PNG - URL "http://sourceforge.net/projects/libpng/files/libpng16/older-releases/1.6.16/lpng1616.zip/download" + URL "http://downloads.sourceforge.net/project/libpng/libpng16/older-releases/1.6.16/lpng1616.zip" URL_MD5 c90c9587c9a5c735327fb3f6900f6b03 BINARY_DIR ${PNG_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -48,6 +48,10 @@ ExternalProject_Add(PNG -DSKIP_INSTALL_EXECUTABLES:BOOL=OFF ${PNG_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_PNG_PNG_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_proj.cmake b/SuperBuild/CMake/External_proj.cmake index 2949915c9fc42904d863752944473f78c3393494..a4fc838c7e44757776948edbda6dbeb2358fe40a 100644 --- a/SuperBuild/CMake/External_proj.cmake +++ b/SuperBuild/CMake/External_proj.cmake @@ -22,51 +22,32 @@ INCLUDE_ONCE_MACRO(PROJ) SETUP_SUPERBUILD(PROJ) -if(MSVC) - ExternalProject_Add(PROJ - PREFIX PROJ - URL "http://download.osgeo.org/proj/proj-4.8.0.tar.gz" - URL_MD5 d815838c92a29179298c126effbb1537 - SOURCE_DIR ${PROJ_SB_SRC} - BINARY_DIR ${PROJ_SB_SRC} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - CONFIGURE_COMMAND "" - BUILD_COMMAND nmake /f ${PROJ_SB_SRC}/makefile.vc - INSTALL_COMMAND nmake /f ${PROJ_SB_SRC}/makefile.vc install-all INSTDIR=${SB_INSTALL_PREFIX_NATIVE} - ) - -else() - - if(APPLE) - set(PROJ_SB_ENV_CONFIGURE_CMD ${SB_ENV_CONFIGURE_CMD} LDFLAGS=-headerpad_max_install_names) - else() - set(PROJ_SB_ENV_CONFIGURE_CMD ${SB_ENV_CONFIGURE_CMD}) - endif() - - ExternalProject_Add(PROJ - PREFIX PROJ - URL "http://download.osgeo.org/proj/proj-4.8.0.tar.gz" - URL_MD5 d815838c92a29179298c126effbb1537 - BINARY_DIR ${PROJ_SB_SRC} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - CONFIGURE_COMMAND - ${SB_ENV_CONFIGURE_CMD} - ${PROJ_SB_SRC}/configure - --prefix=${SB_INSTALL_PREFIX} - --enable-static=no - BUILD_COMMAND $(MAKE) - INSTALL_COMMAND $(MAKE) install - ) - -endif() +ExternalProject_Add(PROJ + PREFIX PROJ + URL "http://download.osgeo.org/proj/proj-4.9.3.tar.gz" + URL_MD5 d598336ca834742735137c5674b214a1 + BINARY_DIR ${PROJ_SB_SRC} + INSTALL_DIR ${SB_INSTALL_PREFIX} + DOWNLOAD_DIR ${DOWNLOAD_LOCATION} + CMAKE_CACHE_ARGS + ${SB_CMAKE_CACHE_ARGS} + -DBUILD_LIBPROJ_SHARED:BOOL=TRUE + -DVERSIONED_OUTPUT:BOOL=FALSE + -DBUILD_FRAMEWORKS_AND_BUNDLE:BOOL=FALSE + -DPROJ_LIB_SUBDIR:STRING=lib + -DPROJ_INCLUDE_SUBDIR:STRING=include + CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 + ) SUPERBUILD_PATCH_SOURCE(PROJ) set(_SB_PROJ_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) - set(_SB_PROJ_LIBRARY ${SB_INSTALL_PREFIX}/lib/proj_i.lib) + set(_SB_PROJ_LIBRARY ${SB_INSTALL_PREFIX}/lib/proj.lib) elseif(UNIX) set(_SB_PROJ_LIBRARY ${SB_INSTALL_PREFIX}/lib/libproj${CMAKE_SHARED_LIBRARY_SUFFIX}) endif() diff --git a/SuperBuild/CMake/External_qt4.cmake b/SuperBuild/CMake/External_qt4.cmake index 8866464eba0bcdb6de152c762c2ae2a327cd247e..6d7c12cd52c00e83b0117ef97fd9814c7d20e193 100644 --- a/SuperBuild/CMake/External_qt4.cmake +++ b/SuperBuild/CMake/External_qt4.cmake @@ -40,7 +40,7 @@ endif() #NOTE: make sure your superbuild install directory does not contain any #Qt files from previous install of superbuild QT. # declare dependencies -ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(QT4 ZLIB PNG JPEG SQLITE FREETYPE) +ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(QT4 ZLIB PNG JPEG FREETYPE) #use system libs always for Qt4 as we build them from source or have already in system set(QT4_SB_CONFIG) @@ -55,10 +55,9 @@ if(UNIX) else() #Linux if(QT4_SB_ENABLE_GTK) message(WARNING "QT4_SB_ENABLE_GTK support is experimental") - set(QT4_SB_CONFIG "${QT4_SB_CONFIG} -sm -xrender -xrandr -gtkstyle") else() - set(QT4_SB_CONFIG "${QT4_SB_CONFIG} -no-gtkstyle") + set(QT4_SB_CONFIG "${QT4_SB_CONFIG} -no-gtkstyle -no-glib -no-fontconfig") endif() endif() #common for all unix @@ -105,10 +104,12 @@ add_custom_target(QT4-uninstall COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/include/QtSvg" COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/include/QtTest" COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/include/QtXml" + COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/include/Qt" COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/mkspecs" COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/plugins" COMMAND ${CMAKE_COMMAND} -E remove_directory "${SB_INSTALL_PREFIX}/translations" COMMAND ${CMAKE_COMMAND} -E remove -f "${SB_INSTALL_PREFIX}/lib/libQt*" + COMMAND ${CMAKE_COMMAND} -E remove -f "${SB_INSTALL_PREFIX}/lib/pkgconfig/Qt*" COMMAND ${CMAKE_COMMAND} -E remove -f "${SB_INSTALL_PREFIX}/bin/qmake${QT4_BIN_EXT}" COMMAND ${CMAKE_COMMAND} -E remove -f "${SB_INSTALL_PREFIX}/bin/lrelease${QT4_BIN_EXT}" COMMAND ${CMAKE_COMMAND} -E remove -f "${SB_INSTALL_PREFIX}/bin/moc${QT4_BIN_EXT}" @@ -130,6 +131,7 @@ add_custom_target(QT4-uninstall DOWNLOAD_DIR ${DOWNLOAD_LOCATION} CONFIGURE_COMMAND ${QT4_CONFIGURE_COMMAND} DEPENDS ${QT4_DEPENDENCIES} + LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 diff --git a/SuperBuild/CMake/External_qwt.cmake b/SuperBuild/CMake/External_qwt.cmake index b7c49bb46e25518ae261a006da3905c9a8746368..847d001b80bdc98c5a842e72acdaa0d7742c727f 100644 --- a/SuperBuild/CMake/External_qwt.cmake +++ b/SuperBuild/CMake/External_qwt.cmake @@ -45,7 +45,7 @@ endif() ExternalProject_Add(QWT PREFIX QWT - URL "http://sourceforge.net/projects/qwt/files/qwt/5.2.3/qwt-5.2.3.zip/download" + URL "http://downloads.sourceforge.net/project/qwt/qwt/5.2.3/qwt-5.2.3.zip" URL_MD5 310a1c8ab831f4b2219505dcb7691cf1 SOURCE_DIR ${QWT_SB_SRC} BINARY_DIR ${QWT_SB_BUILD_DIR} @@ -67,4 +67,4 @@ if(WIN32) set(_SB_QWT_LIBRARY ${SB_INSTALL_PREFIX}/lib/qwt5.lib) elseif(UNIX) set(_SB_QWT_LIBRARY ${SB_INSTALL_PREFIX}/lib/libqwt${CMAKE_SHARED_LIBRARY_SUFFIX}) -endif() \ No newline at end of file +endif() diff --git a/SuperBuild/CMake/External_shark.cmake b/SuperBuild/CMake/External_shark.cmake index f6a41acb569536fff64b9a3cedd68b18e37979dc..4fa164d29259d33037ad8c85ee6327ba6e8a0f85 100644 --- a/SuperBuild/CMake/External_shark.cmake +++ b/SuperBuild/CMake/External_shark.cmake @@ -46,6 +46,12 @@ ExternalProject_Add(SHARK -DENABLE_CBLAS:BOOL=OFF ${SHARK_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) +SUPERBUILD_PATCH_SOURCE(SHARK) + set(_SB_Shark_DIR ${SB_INSTALL_PREFIX}/lib/cmake/Shark) diff --git a/SuperBuild/CMake/External_sqlite.cmake b/SuperBuild/CMake/External_sqlite.cmake index 8a87e03d0e28bc4e89af98a3d21d9a50ce7bb80b..32d845fc3d434ae9b90b459500e55d854333a1d3 100644 --- a/SuperBuild/CMake/External_sqlite.cmake +++ b/SuperBuild/CMake/External_sqlite.cmake @@ -33,6 +33,10 @@ ExternalProject_Add(SQLITE PATCH_COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/patches/SQLITE ${SQLITE_SB_SRC} CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) set(_SB_SQLITE_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) diff --git a/SuperBuild/CMake/External_swig.cmake b/SuperBuild/CMake/External_swig.cmake index 84c28823c7a64cc2ef82d2618ddfc5a153fe76d4..a21bac8410d123d711560da0ebffc5f0f50a58f8 100644 --- a/SuperBuild/CMake/External_swig.cmake +++ b/SuperBuild/CMake/External_swig.cmake @@ -43,7 +43,7 @@ if(MSVC) # Use pre-built swig executable (no linking is required, no install done) ExternalProject_Add(SWIG PREFIX SWIG - URL "http://sourceforge.net/projects/swig/files/swigwin/swigwin-3.0.7/swigwin-3.0.7.zip/download" + URL "http://downloads.sourceforge.net/project/swig/swigwin/swigwin-3.0.7/swigwin-3.0.7.zip" URL_MD5 d8b5a9ce49c819cc1bfc1e797b85ba7a INSTALL_DIR ${SB_INSTALL_PREFIX} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} @@ -62,7 +62,7 @@ else() ExternalProject_Add(SWIG PREFIX SWIG - URL "http://sourceforge.net/projects/swig/files/swig/swig-3.0.7/swig-3.0.7.tar.gz/download" + URL "http://downloads.sourceforge.net/project/swig/swig/swig-3.0.7/swig-3.0.7.tar.gz" URL_MD5 7fff46c84b8c630ede5b0f0827e3d90a BINARY_DIR ${SWIG_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -76,6 +76,10 @@ else() BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install DEPENDS ${SWIG_DEPENDENCIES} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) ExternalProject_Add_Step(SWIG copy_source diff --git a/SuperBuild/CMake/External_tiff.cmake b/SuperBuild/CMake/External_tiff.cmake index 296312b853baa1f2c8b98abff11e4a6e3c940d7f..d1d48880f29a7333d72e993f9abadf2c1e00d51c 100644 --- a/SuperBuild/CMake/External_tiff.cmake +++ b/SuperBuild/CMake/External_tiff.cmake @@ -25,77 +25,52 @@ SETUP_SUPERBUILD(TIFF) # declare dependencies ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(TIFF ZLIB JPEG) -ADD_SUPERBUILD_CMAKE_VAR(TIFF ZLIB_INCLUDE_DIR) -ADD_SUPERBUILD_CMAKE_VAR(TIFF ZLIB_LIBRARY) -ADD_SUPERBUILD_CMAKE_VAR(TIFF JPEG_INCLUDE_DIR) -ADD_SUPERBUILD_CMAKE_VAR(TIFF JPEG_LIBRARY) - if(MSVC) - STRING(REGEX REPLACE "/$" "" CMAKE_WIN_INSTALL_PREFIX ${SB_INSTALL_PREFIX}) - STRING(REGEX REPLACE "/" "\\\\" CMAKE_WIN_INSTALL_PREFIX ${CMAKE_WIN_INSTALL_PREFIX}) - configure_file(${CMAKE_SOURCE_DIR}/patches/TIFF/nmake.opt ${CMAKE_BINARY_DIR}/nmake_libtiff_extra.opt) - ExternalProject_Add(TIFF_build - PREFIX TIFF - URL "http://download.osgeo.org/libtiff/tiff-4.0.6.tar.gz" - URL_MD5 d1d2e940dea0b5ad435f21f03d96dd72 - SOURCE_DIR ${TIFF_SB_SRC} - BINARY_DIR ${TIFF_SB_SRC} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - DEPENDS ${TIFF_DEPENDENCIES} - PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/nmake_libtiff_extra.opt ${TIFF_SB_SRC}/nmake.opt - CONFIGURE_COMMAND "" - BUILD_COMMAND nmake /f ${TIFF_SB_SRC}/Makefile.vc - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/patches/TIFF/CMakeLists.txt - ${CMAKE_BINARY_DIR}/TIFF/_install - ) - - ExternalProject_Add(TIFF - PREFIX TIFF/_install - DOWNLOAD_COMMAND "" - SOURCE_DIR TIFF/_install - BINARY_DIR ${TIFF_SB_BUILD_DIR} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - CMAKE_CACHE_ARGS - -DCMAKE_INSTALL_PREFIX:STRING=${SB_INSTALL_PREFIX} - -DCMAKE_BUILD_TYPE:STRING=Release - -DTIFF_BUILD_DIR:STRING=${TIFF_SB_SRC}/libtiff - DEPENDS TIFF_build - CMAKE_COMMAND - ) - -else() - ExternalProject_Add(TIFF - PREFIX TIFF - URL "http://download.osgeo.org/libtiff/tiff-4.0.6.tar.gz" - URL_MD5 d1d2e940dea0b5ad435f21f03d96dd72 - SOURCE_DIR ${TIFF_SB_SRC} - BINARY_DIR ${TIFF_SB_BUILD_DIR} - INSTALL_DIR ${SB_INSTALL_PREFIX} - DOWNLOAD_DIR ${DOWNLOAD_LOCATION} - DEPENDS ${TIFF_DEPENDENCIES} - CMAKE_CACHE_ARGS - ${SB_CMAKE_CACHE_ARGS} - -DCMAKE_INSTALL_LIBDIR:PATH=lib - -DCMAKE_INSTALL_BINDIR:PATH=bin - -DBUILD_TESTING:BOOL=OFF - -Djpeg:BOOL=TRUE - -Dlzma:BOOL=FALSE - -Djbig:BOOL=FALSE - -Dzlib:BOOL=TRUE - -DWITH_OPENGL:BOOL=FALSE - -Dpixarlog:BOOL=TRUE - ${TIFF_SB_CONFIG} - CMAKE_COMMAND ${SB_CMAKE_COMMAND} - ) + set(TIFF_C_FLAGS "/D_CRT_SECURE_NO_WARNINGS /DWIN32") endif() +ExternalProject_Add(TIFF + PREFIX TIFF + URL "http://download.osgeo.org/libtiff/tiff-4.0.8.tar.gz" + URL_MD5 2a7d1c1318416ddf36d5f6fa4600069b + SOURCE_DIR ${TIFF_SB_SRC} + BINARY_DIR ${TIFF_SB_BUILD_DIR} + INSTALL_DIR ${SB_INSTALL_PREFIX} + DOWNLOAD_DIR ${DOWNLOAD_LOCATION} + DEPENDS ${TIFF_DEPENDENCIES} + CMAKE_CACHE_ARGS + ${SB_CMAKE_CACHE_ARGS} + -DCMAKE_C_FLAGS:STRING=${TIFF_C_FLAGS} + -DCMAKE_INSTALL_LIBDIR:PATH=lib + -DCMAKE_INSTALL_BINDIR:PATH=bin + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=TRUE + -DBUILD_TESTING:BOOL=FALSE + -Djpeg:BOOL=TRUE + -Dlzma:BOOL=FALSE + -Djbig:BOOL=FALSE + -Dzlib:BOOL=TRUE + -DWITH_OPENGL:BOOL=FALSE + -Dpixarlog:BOOL=TRUE + -Dcxx:BOOL=FALSE + -Dwith_opengl:BOOL=FALSE + -Dwith_tools:BOOL=FALSE + -Dwith_test:BOOL=FALSE + -Dwith_contrib:BOOL=FALSE + -Dwith_docs:BOOL=FALSE + ${TIFF_SB_CONFIG} + CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 + ) + SUPERBUILD_PATCH_SOURCE(TIFF) +#do we really need these variables? set(_SB_TIFF_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) - set(_SB_TIFF_LIBRARY ${SB_INSTALL_PREFIX}/lib/libtiff_i.lib) + set(_SB_TIFF_LIBRARY ${SB_INSTALL_PREFIX}/lib/tiff.lib) elseif(UNIX) set(_SB_TIFF_LIBRARY ${SB_INSTALL_PREFIX}/lib/libtiff${CMAKE_SHARED_LIBRARY_SUFFIX}) endif() diff --git a/SuperBuild/CMake/External_tinyxml.cmake b/SuperBuild/CMake/External_tinyxml.cmake index d79b14ea6646d7c178dbcb20bf21c34e22a79f96..8952e1ea83147829c4cd3a1a491111ff9ccb0941 100644 --- a/SuperBuild/CMake/External_tinyxml.cmake +++ b/SuperBuild/CMake/External_tinyxml.cmake @@ -24,7 +24,7 @@ SETUP_SUPERBUILD(TINYXML) ExternalProject_Add(TINYXML PREFIX TINYXML - URL "http://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz/download" + URL "http://downloads.sourceforge.net/project/tinyxml/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz" URL_MD5 c1b864c96804a10526540c664ade67f0 BINARY_DIR ${TINYXML_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} @@ -35,6 +35,10 @@ ExternalProject_Add(TINYXML ${TINYXML_SB_SRC} CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) SUPERBUILD_UPDATE_CMAKE_VARIABLES(TINYXML FALSE) diff --git a/SuperBuild/CMake/External_zlib.cmake b/SuperBuild/CMake/External_zlib.cmake index d19fe414172a5d15b5c9dcdacf12c7cfe708092c..6948e1f54244176e582864c1f958a139ea559402 100644 --- a/SuperBuild/CMake/External_zlib.cmake +++ b/SuperBuild/CMake/External_zlib.cmake @@ -26,21 +26,27 @@ SETUP_SUPERBUILD(ZLIB) # Try official release 1.2.8 ExternalProject_Add(ZLIB PREFIX ZLIB - URL "http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz/download" + URL "http://downloads.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz" URL_MD5 44d667c142d7cda120332623eab69f40 BINARY_DIR ${ZLIB_SB_BUILD_DIR} INSTALL_DIR ${SB_INSTALL_PREFIX} DOWNLOAD_DIR ${DOWNLOAD_LOCATION} CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS} CMAKE_COMMAND ${SB_CMAKE_COMMAND} + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 ) +#patch zlib cmake to disable static build on request if(UNIX) ExternalProject_Add_Step(ZLIB remove_static COMMAND ${CMAKE_COMMAND} -E remove ${SB_INSTALL_PREFIX}/lib/libz.a DEPENDEES install) endif() +#check who uses zdll.lib and remove this hack if(MSVC) ExternalProject_Add_Step(ZLIB msvc_copy_hell COMMAND ${CMAKE_COMMAND} -E copy ${ZLIB_SB_BUILD_DIR}/zlib.lib ${SB_INSTALL_PREFIX}/lib/zdll.lib diff --git a/SuperBuild/CMake/patch.cmake b/SuperBuild/CMake/patch.cmake index 651aec69583dd741b3130e5cfcae04df6bd5c1b4..db91ef224f2324afcde0c8f070644ae34ccd18f6 100644 --- a/SuperBuild/CMake/patch.cmake +++ b/SuperBuild/CMake/patch.cmake @@ -54,7 +54,8 @@ foreach(dot_diff_file ${DOT_DIFF_FILES}) endif() if(PATCHING_FAILED) - message(FATAL_ERROR "${PATCH_PROGRAM} returned non-zero exit status \n ${patch_ov} \n") + message(FATAL_ERROR + "${PATCH_PROGRAM} ${PATCH_ARGS} -p1 -i ${dot_diff_file} failed\n error: ${patch_ov} \n") else() message("${patch_ov}") endif() diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 15024aae21f834f33b5954de928b496b7bde8aa9..6d47c1185ec61de953820d854367b956dfb3a960 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -18,7 +18,7 @@ # limitations under the License. # -cmake_minimum_required(VERSION 3.1.0) +cmake_minimum_required(VERSION 3.3.0) project(OTB-SuperBuild) @@ -42,6 +42,7 @@ include(ExternalProject) include(OTBCheckTargetSystemArch) option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ON) +option(BUILD_STATIC_LIBS "Build with static libraries." OFF) set(OTB_ADDITIONAL_CACHE "" CACHE STRING "Additional cmake option for OTB -DVAR:TYPE=VALUE ...") @@ -73,11 +74,11 @@ option(BUILD_TESTING "Build the testing tree." OFF) include(CTest) include(SuperBuild_Macro) -# Setup location where source tar-balls are downloaded -#set (install_location "${CMAKE_CURRENT_BINARY_DIR}/install") -set (DOWNLOAD_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/Downloads" - CACHE PATH "Location where source tar-balls are (to be) downloaded.") -mark_as_advanced(DOWNLOAD_LOCATION) +# Configure location where source tar-balls are downloaded +find_path(DOWNLOAD_LOCATION + NAMES OTBSuperBuild.readme + HINTS $ENV{DOWNLOAD_LOCATION} "${CMAKE_CURRENT_BINARY_DIR}/Downloads" + ) # General options option(OTB_DATA_USE_LARGEINPUT "Use Large inputs images test." OFF) @@ -145,15 +146,6 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() -if(MSVC) - set(BUILD_SHARED_LIBS OFF) - if(CMAKE_MAJOR_VERSION GREATER 2 AND CMAKE_MINOR_VERSION GREATER 2) - set(BUILD_SHARED_LIBS ON) - else() - message(WARNING "BUILD_SHARED_LIBS is set to OFF with CMake < 3.3") - endif() -endif() - if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Ox /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE") if(MSVC_VERSION GREATER 1310) @@ -249,6 +241,7 @@ option(USE_SYSTEM_GDAL "Use a system build of GDAL" OFF) option(USE_SYSTEM_FFTW "Use a system build of FFTW" OFF) option(USE_SYSTEM_ITK "Use a system build of ITK" OFF) option(USE_SYSTEM_OPENTHREADS "Use a system build of OpenThreads" OFF) +option(USE_SYSTEM_OSSIM "Use a system build of OSSIM" OFF) option(USE_SYSTEM_MUPARSER "Use a system build of muParser" OFF) option(USE_SYSTEM_MUPARSERX "Use a system build of muParserX" OFF) option(USE_SYSTEM_TINYXML "Use a system build of TinyXML" OFF) @@ -281,18 +274,19 @@ option(OTB_USE_MUPARSERX "Enable module muparserX in OTB" ON) option(OTB_USE_OPENCV "Enable module OpenCV in OTB" ON) option(OTB_USE_QT4 "Enable module QT4 in OTB" ON) option(OTB_USE_SIFTFAST "Enable module Siftfast in OTB" ON) -option(OTB_USE_OPENGL "Enable module OpenGL in OTB" OFF) -option(OTB_USE_GLEW "Enable module GLEW in OTB" OFF) -option(OTB_USE_GLFW "Enable module GLFW in OTB" OFF) -option(OTB_USE_GLUT "Enable module GLUT in OTB" OFF) -option(OTB_USE_SHARK "Enable module Shark in OTB" OFF) -option(OTB_USE_QWT "Enable module QWT in OTB" OFF) +option(OTB_USE_OPENGL "Enable module OpenGL in OTB" ON) +option(OTB_USE_GLEW "Enable module GLEW in OTB" ON) +option(OTB_USE_GLFW "Enable module GLFW in OTB" ON) -#Problem: below cmake setting will fail! -#-DOTB_USE_OPENGL=ON -DOTB_USE_GLEW=ON -DOTB_USE_QWT=ON -#This is because ENABLE_MONTEVERDI is OFF by default -# This brings a lot of twisted logic. so taking out this option +#Cannot activate GLUT on OSX. See manits issue #1194") +if(APPLE) + option(OTB_USE_GLUT "Enable module GLUT in OTB" OFF) +else() + option(OTB_USE_GLUT "Enable module GLUT in OTB" ON) +endif() +option(OTB_USE_SHARK "Enable module Shark in OTB" ON) +option(OTB_USE_QWT "Enable module QWT in OTB" ON) # set OTB_DATA_ROOT to run test find_path(OTB_DATA_ROOT README-OTB-Data PATHS $ENV{OTB_DATA_ROOT} ${OTB-SuperBuild_SOURCE_DIR}/../../OTB-Data) @@ -352,6 +346,7 @@ endif() message(STATUS "OTB_TARGET_SYSTEM_ARCH=${OTB_TARGET_SYSTEM_ARCH}") message(STATUS "OTB_TARGET_SYSTEM_ARCH_IS_X64=${OTB_TARGET_SYSTEM_ARCH_IS_X64}") if(DOWNLOAD_LOCATION) + message(STATUS "DOWNLOAD_LOCATION=${DOWNLOAD_LOCATION}") message(STATUS "Source archives for dependencies will be taken from '${DOWNLOAD_LOCATION}'") else() message(STATUS "DOWNLOAD_LOCATION is not set. We will download all source archives during build!") diff --git a/SuperBuild/Packaging/PackageGlobals.cmake b/SuperBuild/Packaging/PackageGlobals.cmake index 9b94a74c1bade4cca2bbe6f69ea0e64a038e81dd..fdcfb3da3709c78e0b703ae99f296acced1aece7 100644 --- a/SuperBuild/Packaging/PackageGlobals.cmake +++ b/SuperBuild/Packaging/PackageGlobals.cmake @@ -91,6 +91,7 @@ set(LINUX_SYSTEM_DLLS libexpat.so.* libfontconfig.so* libfreetype.so* + libwebp.so* ) # libgcc_s.*dylib and other *.framework are dragged by QT diff --git a/SuperBuild/patches/CURL/curl-1-cmake-all.diff b/SuperBuild/patches/CURL/curl-1-cmake-all.diff new file mode 100755 index 0000000000000000000000000000000000000000..e2e0807143542ebb4a73c4fa5d6821cedaa6a4df --- /dev/null +++ b/SuperBuild/patches/CURL/curl-1-cmake-all.diff @@ -0,0 +1,67 @@ +diff -burN curl-7.40.0/CMake/CurlTests.c curl-7.40.0.orig/CMake/CurlTests.c +--- curl-7.40.0/CMake/CurlTests.c 2017-07-26 15:24:27.473903048 +0200 ++++ curl-7.40.0.orig/CMake/CurlTests.c 2017-07-26 15:22:05.268949035 +0200 +@@ -139,7 +139,7 @@ + rc = gethostbyname_r(address, &h, &hdata); + #elif defined(HAVE_GETHOSTBYNAME_R_5) || \ + defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) +- rc = gethostbyname_r(address, &h, buffer, 8192, 0, &h_errnop); ++ rc = gethostbyname_r(address, &h, buffer, 8192, &h_errnop); + (void)hp; /* not used for test */ + #elif defined(HAVE_GETHOSTBYNAME_R_6) || \ + defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) +diff -burN curl-7.40.0.orig/CMake/OtherTests.cmake curl-7.40.0/CMake/OtherTests.cmake +--- curl-7.40.0.orig/CMake/OtherTests.cmake 2014-11-20 18:42:16.000000000 +0100 ++++ curl-7.40.0/CMake/OtherTests.cmake 2017-07-21 16:37:37.414343678 +0200 +@@ -10,6 +10,7 @@ + + set(signature_call_conv) + if(HAVE_WINDOWS_H) ++ set(_source_epilogue "${_source_epilogue}\n#define _WINSOCKAPI_") + add_header_include(HAVE_WINDOWS_H "windows.h") + add_header_include(HAVE_WINSOCK2_H "winsock2.h") + add_header_include(HAVE_WINSOCK_H "winsock.h") +@@ -163,7 +164,9 @@ + return 0; + }" HAVE_MSG_NOSIGNAL) + +-if(NOT HAVE_WINDOWS_H) ++if(HAVE_WINDOWS_H) ++add_header_include(HAVE_WINSOCK2_H "winsock2.h") ++else() + add_header_include(HAVE_SYS_TIME_H "sys/time.h") + add_header_include(TIME_WITH_SYS_TIME "time.h") + add_header_include(HAVE_TIME_H "time.h") +diff -burN curl-7.40.0.orig/src/CMakeLists.txt curl-7.40.0/src/CMakeLists.txt +--- curl-7.40.0.orig/src/CMakeLists.txt 2014-11-20 18:42:17.000000000 +0100 ++++ curl-7.40.0/src/CMakeLists.txt 2017-07-21 16:37:41.082367733 +0200 +@@ -25,14 +25,21 @@ + "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h" + VERBATIM) + else() +- add_custom_command( +- OUTPUT tool_hugehelp.c +- COMMAND echo "/* built-in manual is disabled, blank function */" > tool_hugehelp.c +- COMMAND echo "#include \"tool_hugehelp.h\"" >> tool_hugehelp.c +- COMMAND echo "void hugehelp(void) {}" >> tool_hugehelp.c +- DEPENDS +- "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h" +- VERBATIM) ++file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tool_hugehelp.c ++"/*built-in manual is disabled, blank function */\n" ++) ++file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/tool_hugehelp.c ++"#include \"tool_hugehelp.h\"\nvoid hugehelp(void) {}\n" ++) ++ ++ # add_custom_command( ++ # OUTPUT tool_hugehelp.c ++ # COMMAND echo "/* built-in manual is disabled, blank function */" > tool_hugehelp.c ++ # COMMAND echo "#include \"tool_hugehelp.h\"" >> tool_hugehelp.c ++ # COMMAND echo "void hugehelp(void) {}" >> tool_hugehelp.c ++ # DEPENDS ++ # "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h" ++ # VERBATIM) + endif() + + transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") diff --git a/SuperBuild/patches/GDAL/gdal-2-enviRotation-all.diff b/SuperBuild/patches/GDAL/gdal-2-enviRotation-all.diff new file mode 100644 index 0000000000000000000000000000000000000000..8c7f7acdce6b34c908a9a10580f2697157534658 --- /dev/null +++ b/SuperBuild/patches/GDAL/gdal-2-enviRotation-all.diff @@ -0,0 +1,32 @@ +diff -burN gdal-2.2.1-orig/frmts/raw/envidataset.cpp gdal-2.2.1/frmts/raw/envidataset.cpp +--- gdal-2.2.1-orig/frmts/raw/envidataset.cpp 2017-06-23 14:18:43.000000000 +0200 ++++ gdal-2.2.1/frmts/raw/envidataset.cpp 2017-07-20 18:25:05.373655046 +0200 +@@ -620,10 +620,13 @@ + adfGeoTransform[4] != 0.0 || adfGeoTransform[5] != 1.0; + if( bHasNonDefaultGT ) + { ++ const double dfDet = adfGeoTransform[1] * adfGeoTransform[5] - ++ adfGeoTransform[2] * adfGeoTransform[4]; ++ const double dfSign = (dfDet>0.0 ? 1.0 : -1.0); + const double dfRotation1 = +- -atan2(-adfGeoTransform[2], adfGeoTransform[1]) * kdfRadToDeg; ++ -atan2(dfSign * adfGeoTransform[2], adfGeoTransform[1]) * kdfRadToDeg; + const double dfRotation2 = +- -atan2(-adfGeoTransform[4], -adfGeoTransform[5]) * kdfRadToDeg; ++ -atan2(-adfGeoTransform[4], dfSign * adfGeoTransform[5]) * kdfRadToDeg; + const double dfRotation = (dfRotation1 + dfRotation2) / 2.0; + + if( fabs(dfRotation1 - dfRotation2) > 1e-5 ) +@@ -1534,7 +1537,12 @@ + + // Fallback to localcs if we don't recognise things. + if( oSRS.GetRoot() == NULL ) ++ { + oSRS.SetLocalCS(papszFields[0]); ++ // assume that the Y axis isn't flipped ++ adfGeoTransform[2] *= -1.0; ++ adfGeoTransform[5] *= -1.0; ++ } + + // Try to set datum from projection info line if we have a + // projected coordinate system without a GEOGCS. diff --git a/SuperBuild/patches/GDAL/nmake_gdal_extra.opt.in b/SuperBuild/patches/GDAL/nmake_gdal_extra.opt.in index 87f6bcd7b43280ad18f51db294000b68bcb1cbb8..72824d4104ed4ef7ae04e073ea4e264a9945be2d 100644 --- a/SuperBuild/patches/GDAL/nmake_gdal_extra.opt.in +++ b/SuperBuild/patches/GDAL/nmake_gdal_extra.opt.in @@ -11,60 +11,60 @@ JPEG_SUPPORTED = 1 # This will enable 12bit libjpeg - use only with internal jpeg builds. #JPEG12_SUPPORTED = 1 -GDAL_HOME="@CMAKE_WIN_INSTALL_PREFIX@" +GDAL_HOME="@SB_INSTALL_PREFIX_NATIVE@" #if using an external jpeg library uncomment the follwing lines JPEG_EXTERNAL_LIB = 1 -JPEGDIR = @CMAKE_WIN_INSTALL_PREFIX@\include -JPEG_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\jpeg.lib +JPEGDIR = @SB_INSTALL_PREFIX_NATIVE@\include +JPEG_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\jpeg.lib #if using an external png library uncomment the follwing lines PNG_EXTERNAL_LIB = 1 -PNGDIR = @CMAKE_WIN_INSTALL_PREFIX@\include -PNG_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\libpng.lib +PNGDIR = @SB_INSTALL_PREFIX_NATIVE@\include +PNG_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\libpng.lib # if using an external libtiff library -TIFF_INC = -I@CMAKE_WIN_INSTALL_PREFIX@\include -TIFF_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\libtiff_i.lib +TIFF_INC = -I@SB_INSTALL_PREFIX_NATIVE@\include +TIFF_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\tiff.lib # uncomment following line, if you have libtiff version >= 4.0 to enable BigTIFF support TIFF_OPTS= -DBIGTIFF_SUPPORT # if using an external libgeotiff library -GEOTIFF_INC = -I@CMAKE_WIN_INSTALL_PREFIX@\include -GEOTIFF_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\geotiff_i.lib +GEOTIFF_INC = -I@SB_INSTALL_PREFIX_NATIVE@\include +GEOTIFF_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\geotiff_i.lib -EXPAT_DIR = @CMAKE_WIN_INSTALL_PREFIX@ +EXPAT_DIR = @SB_INSTALL_PREFIX_NATIVE@ EXPAT_INCLUDE = -I$(EXPAT_DIR)\include EXPAT_LIB = $(EXPAT_DIR)\lib\expat.lib # SQLite Libraries -SQLITE_INC=-I@CMAKE_WIN_INSTALL_PREFIX@\include -SQLITE_LIB=@CMAKE_WIN_INSTALL_PREFIX@\lib\sqlite3.lib +SQLITE_INC=-I@SB_INSTALL_PREFIX_NATIVE@\include +SQLITE_LIB=@SB_INSTALL_PREFIX_NATIVE@\lib\sqlite3.lib # Uncomment following line if libsqlite3 has been compiled with SQLITE_HAS_COLUMN_METADATA=yes SQLITE_HAS_COLUMN_METADATA=yes # PROJ.4 stuff -PROJ_INCLUDE = -I@CMAKE_WIN_INSTALL_PREFIX@\include -PROJ_LIBRARY = @CMAKE_WIN_INSTALL_PREFIX@\lib\proj_i.lib +PROJ_INCLUDE = -I@SB_INSTALL_PREFIX_NATIVE@\include +PROJ_LIBRARY = @SB_INSTALL_PREFIX_NATIVE@\lib\proj.lib # Uncomment to use libcurl (DLL by default) # The cURL library is used for WCS, WMS, GeoJSON, SRS call importFromUrl(), WFS, GFT, CouchDB, /vsicurl/ etc. -CURL_DIR=@CMAKE_WIN_INSTALL_PREFIX@ +CURL_DIR=@SB_INSTALL_PREFIX_NATIVE@ CURL_INC = -I$(CURL_DIR)\include # Uncoment following line to use libcurl as dynamic library -CURL_LIB = $(CURL_DIR)\lib\libcurl.lib wsock32.lib wldap32.lib winmm.lib +CURL_LIB = $(CURL_DIR)\lib\libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib # Uncomment for GEOS support (GEOS >= 3.1.0 required) -GEOS_DIR=@CMAKE_WIN_INSTALL_PREFIX@ +GEOS_DIR=@SB_INSTALL_PREFIX_NATIVE@ GEOS_CFLAGS = -I$(GEOS_DIR)\include -I$(GEOS_DIR)\include\geos -DHAVE_GEOS -GEOS_LIB = $(GEOS_DIR)\lib\geos_i.lib $(GEOS_DIR)\lib\geos_c_i.lib +GEOS_LIB = $(GEOS_DIR)\lib\geos.lib $(GEOS_DIR)\lib\geos_c.lib # Uncomment for OpenJpeg support HAVE_OPENJPEG = YES OPENJPEG_ENABLED = YES OPENJPEG_VERSION = 20100 -OPENJPEG_CFLAGS = -I@CMAKE_WIN_INSTALL_PREFIX@\include -OPENJPEG_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\openjp2.lib +OPENJPEG_CFLAGS = -I@SB_INSTALL_PREFIX_NATIVE@\include +OPENJPEG_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\openjp2.lib ################################################################## @@ -86,6 +86,10 @@ OPENJPEG_LIB = @CMAKE_WIN_INSTALL_PREFIX@\lib\openjp2.lib # $(LIBKML_DIR)/third_party\zlib-1.2.3.win32/lib/minizip.lib \ # $(LIBKML_DIR)/third_party\zlib-1.2.3.win32/lib/zlib.lib +#we use external zlib on windows +ZLIB_EXTERNAL_LIB = 1 +ZLIB_INC = -I@SB_INSTALL_PREFIX_NATIVE@\include +ZLIB_LIB = @SB_INSTALL_PREFIX_NATIVE@\lib\zlib.lib # Uncomment the following and update to enable NCSA HDF Release 4 support. #HDF4_PLUGIN = NO diff --git a/SuperBuild/patches/GEOS/CMakeLists.txt b/SuperBuild/patches/GEOS/CMakeLists.txt deleted file mode 100644 index a89103afaecae9441d1095ccab4d97bb094148eb..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/GEOS/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -# -# 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. -# - -cmake_minimum_required(VERSION 2.8) - -project(GEOS_SUPERBUILD) - -add_custom_target(build_with_nmake -ALL DEPENDS -COMMAND -nmake /f ${GEOS_SB_SRC}/makefile.vc -WORKING_DIRECTORY ${GEOS_SB_SRC} -) - -install(FILES ${GEOS_SB_SRC}/capi/geos_c.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include) -install(FILES ${GEOS_SB_SRC}/include/geos.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include) -install(DIRECTORY ${GEOS_SB_SRC}/include/geos DESTINATION ${CMAKE_INSTALL_PREFIX}/include) -install(FILES ${GEOS_SB_SRC}/src/geos.dll DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) -install(FILES ${GEOS_SB_SRC}/src/geos_c.dll DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) -install(FILES ${GEOS_SB_SRC}/src/geos.lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) -install(FILES ${GEOS_SB_SRC}/src/geos_i.lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) -install(FILES ${GEOS_SB_SRC}/src/geos_c_i.lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) diff --git a/SuperBuild/patches/GEOS/geos-1-fixes-all.diff b/SuperBuild/patches/GEOS/geos-1-fixes-all.diff index 4a516fe4697128ff5f81bbecc25568e62a46bceb..ca7663fffbf52a566124f57daf25d52e378d2da9 100644 --- a/SuperBuild/patches/GEOS/geos-1-fixes-all.diff +++ b/SuperBuild/patches/GEOS/geos-1-fixes-all.diff @@ -1,93 +1,22 @@ -diff -burN geos-3.5.0.orig/CMakeLists.txt geos-3.5.0/CMakeLists.txt ---- geos-3.5.0.orig/CMakeLists.txt 2016-09-02 11:02:28.833742143 +0200 -+++ geos-3.5.0/CMakeLists.txt 2016-09-02 11:05:05.897748116 +0200 -@@ -55,6 +55,9 @@ - # Check custom global options - ################################################################################# - -+option(GEOS_BUILD_STATIC -+ "Set to OFF|ON (default) to control build of GEOS tests package" OFF) -+ - option(GEOS_ENABLE_TESTS - "Set to OFF|ON (default) to control build of GEOS tests package" ON) - -@@ -317,18 +320,18 @@ - - # Define "make check" as alias for "make test" - add_custom_target(check COMMAND ctest) -- -+add_subdirectory(tests) - endif() - - ################################################################################# - # Configure subdirectories - ################################################################################# --include(GenerateSourceGroups) -+#include(GenerateSourceGroups) - - add_subdirectory(include) - add_subdirectory(src) - add_subdirectory(capi) --add_subdirectory(tests) -+ - add_subdirectory(tools) - - ################################################################################# -diff -burN geos-3.5.0.orig/include/CMakeLists.txt geos-3.5.0/include/CMakeLists.txt ---- geos-3.5.0.orig/include/CMakeLists.txt 2016-09-02 11:02:28.837742143 +0200 -+++ geos-3.5.0/include/CMakeLists.txt 2016-09-02 11:03:03.581743464 +0200 -@@ -54,4 +54,4 @@ - ################################################################################# - # Group source files for IDE source explorers (e.g. Visual Studio) - ################################################################################# --GenerateSourceGroups(include) -+#GenerateSourceGroups(include) -diff -burN geos-3.5.0.orig/src/CMakeLists.txt geos-3.5.0/src/CMakeLists.txt ---- geos-3.5.0.orig/src/CMakeLists.txt 2016-09-02 11:02:28.869742144 +0200 -+++ geos-3.5.0/src/CMakeLists.txt 2016-09-02 11:05:14.621748447 +0200 -@@ -62,7 +62,18 @@ - else() - - add_library(geos SHARED ${geos_SOURCES} ${geos_ALL_HEADERS}) -+ if(GEOS_BUILD_STATIC) - add_library(geos-static STATIC ${geos_SOURCES} ${geos_ALL_HEADERS}) -+ set_target_properties(geos-static -+ PROPERTIES -+ OUTPUT_NAME "geos" -+ PREFIX "lib" -+ CLEAN_DIRECT_OUTPUT 1) -+ install(TARGETS geos geos-static -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+endif() - - set_target_properties(geos - PROPERTIES -@@ -70,11 +81,6 @@ - VERSION ${VERSION} - CLEAN_DIRECT_OUTPUT 1) - -- set_target_properties(geos-static -- PROPERTIES -- OUTPUT_NAME "geos" -- PREFIX "lib" -- CLEAN_DIRECT_OUTPUT 1) - - endif() - -@@ -90,7 +96,7 @@ - ################################################################################# - - if(NOT GEOS_ENABLE_MACOSX_FRAMEWORK) -- install(TARGETS geos geos-static -+ install(TARGETS geos - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) -@@ -99,4 +105,4 @@ - ################################################################################# - # Group source files for IDE source explorers (e.g. Visual Studio) - ################################################################################# --GenerateSourceGroups(src) -+#GenerateSourceGroups(src) +diff -burN geos-3.6.1.orig/cmake/modules/GenerateSourceGroups.cmake geos-3.6.1/cmake/modules/GenerateSourceGroups.cmake +--- geos-3.6.1.orig/cmake/modules/GenerateSourceGroups.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ geos-3.6.1/cmake/modules/GenerateSourceGroups.cmake 2017-06-19 11:19:32.143054641 +0200 +@@ -0,0 +1,17 @@ ++# ++# Macro generates tree of IDE source groups based on folders structure ++# Source: http://www.cmake.org/pipermail/cmake/2013-November/056332.html ++# ++macro(GenerateSourceGroups curdir) ++ file(GLOB children RELATIVE ${PROJECT_SOURCE_DIR}/${curdir} ${PROJECT_SOURCE_DIR}/${curdir}/*) ++ foreach(child ${children}) ++ if(IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${curdir}/${child}) ++ GenerateSourceGroups(${curdir}/${child}) ++ else() ++ string(REPLACE "/" "\\" groupname ${curdir}) ++ # I would like to call the src root folder in a different name, only in visual studio (not mandatory requirement) ++ string(REPLACE "src" "Source Files" groupname ${groupname}) ++ source_group(${groupname} FILES ${PROJECT_SOURCE_DIR}/${curdir}/${child}) ++ endif() ++ endforeach() ++endmacro() +\ Pas de fin de ligne à la fin du fichier diff --git a/SuperBuild/patches/GEOS/nmake.opt b/SuperBuild/patches/GEOS/nmake.opt deleted file mode 100644 index ca21bd252387c8b166343bc966871399a2b36abd..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/GEOS/nmake.opt +++ /dev/null @@ -1,250 +0,0 @@ -# -# nmake.opt - main configuration file for NMAKE makefiles -# -!MESSAGE ********************************************************************** -!MESSAGE *** GEOS Build Configuration *** - -# TODO: Confirm as redundant and remove, nmake /P displays _NMAKE_VER anyway. -#!INCLUDE <ntwin32.mak> - -############################################################################### -# For convenience, user may put custom settings to private mynmake.opt -# and use EXT_NMAKE_OPT option while calling nmake.exe, as follows: -# -# nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt - -!IFDEF EXT_NMAKE_OPT -!MESSAGE *** Setting EXT_NMAKE_OPT $(EXT_NMAKE_OPT) -!INCLUDE $(EXT_NMAKE_OPT) -!ENDIF - -############################################################################### -# Set BUILD_DEBUG to YES if you want to make debug build -# and to prepare not optimized binaries. - -!IFNDEF BUILD_DEBUG -BUILD_DEBUG = NO -!ENDIF - -!MESSAGE *** Setting BUILD_DEBUG $(BUILD_DEBUG) - -############################################################################### -# Set ENABLE_INLINE to YES if you want to make debug build -# and to prepare not optimized binaries. - -!IFNDEF ENABLE_INLINE -ENABLE_INLINE = NO -!ENDIF - -!MESSAGE *** Setting ENABLE_INLINE $(ENABLE_INLINE) - -############################################################################### -# Set BUILD_BATCH to YES if you want feed compiler with all -# source .c and .cpp files in single batch. - -!IFNDEF BUILD_BATCH -BUILD_BATCH = NO -!ENDIF - -!MESSAGE *** Setting BUILD_BATCH $(BUILD_BATCH) - -############################################################################### -# Set WIN64=YES if you are building for 64-bit windows (x64). -# Alternatively, pass WIN64=YES as NMAKE command line argument. -############################################################################### -!IFNDEF WIN64 -WIN64 = NO -!ENDIF - -!MESSAGE *** Setting WIN64 $(WIN64) - -############################################################################### -# Derive version of Visual C++ being used from NMAKE if not specified -# -# WARNING: -# If we should expect variety of NMAKE build versions, tests below may fail -# and we will need to fall back to setting GEOS_MSVC as command line parameter. - -!IF "$(_NMAKE_VER)" == "" -GEOS_MSVC = 4.0 -!ERROR *** Failed to determine version of Visual C++ -!ELSEIF "$(_NMAKE_VER)" == "162" -GEOS_MSVC = 5.0 -!ERROR *** Detected Visual C++ 5.0 - NOT SUPPORTED -!ELSEIF "$(_NMAKE_VER)" == "6.00.8168.0" -GEOS_MSVC = 6.0 -GEOS_MSC = 1200 -!ERROR *** Detected Visual C++ 6.0 - NOT SUPPORTED -!ELSEIF "$(_NMAKE_VER)" == "7.00.9466" -GEOS_MSVC = 7.0 -GEOS_MSC = 1300 -!ELSEIF "$(_NMAKE_VER)" == "7.10.3077" -GEOS_MSVC = 7.1 -GEOS_MSC = 1310 -!ELSEIF "$(_NMAKE_VER)" == "8.00.50727.42" -GEOS_MSVC = 8.0 -GEOS_MSC = 1400 -!ELSEIF "$(_NMAKE_VER)" == "8.00.50727.762" -GEOS_MSVC = 8.0 -GEOS_MSC = 1400 -!ELSEIF "$(_NMAKE_VER)" == "9.00.21022.08" -GEOS_MSVC = 9.0 -GEOS_MSC = 1500 -!ELSEIF "$(_NMAKE_VER)" == "9.00.30729.01" -GEOS_MSVC = 9.0 -GEOS_MSC = 1500 -!ELSEIF "$(_NMAKE_VER)" == "10.00.30128.01" -GEOS_MSVC = 10.0 -GEOS_MSC = 1600 -!ELSEIF "$(_NMAKE_VER)" == "10.00.30319.01" -GEOS_MSVC = 10.0 -GEOS_MSC = 1600 -!ELSEIF "$(_NMAKE_VER)" == "11.00.40825.2" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.50522.1" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.50727.1" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.51106.1" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.60315.1" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.60430.2" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.60521.0" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.60610.1" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "11.00.61030.0" -GEOS_MSVC = 11.0 -GEOS_MSC = 1700 -!ELSEIF "$(_NMAKE_VER)" == "12.00.21005.1" -GEOS_MSVC = 12.0 -GEOS_MSC = 1800 -!ELSEIF "$(_NMAKE_VER)" == "14.00.22816.0" -GEOS_MSVC = 14.0 -GEOS_MSC = 1900 -!ELSEIF "$(_NMAKE_VER)" == "14.00.23026.0" -GEOS_MSVC = 14.0 -GEOS_MSC = 1900 -!ELSEIF "$(_NMAKE_VER)" == "14.00.23918.0" -GEOS_MSVC = 14.0 -GEOS_MSC = 1900 -!ELSEIF "$(_NMAKE_VER)" == "14.00.24210.0" -GEOS_MSVC = 14.0 -GEOS_MSC = 1900 -!ELSE -GEOS_MSVC = 0.0 -GEOS_MSC = 0 -!ENDIF - -!IF "$(GEOS_MSVC)" == "0.0" && "$(GEOS_MSC)" == "0" -!MESSAGE *** Cannot determine Visual C++ version -!ERROR *** Aborting make job -!ELSE -!MESSAGE *** Using Microsoft NMAKE version $(_NMAKE_VER) -!MESSAGE *** Using Microsoft Visual C++ version $(GEOS_MSVC) -!MESSAGE *** Using Microsoft C/C++ version $(GEOS_MSC) -!ENDIF - -############################################################################### -# Optional use of Visual Leak Detector (VLD) http://vld.codeplex.com/ -# Uncomment this line to use VLD in debug configuration only: -#MSVC_VLD_DIR=$(EXTLIBDIR)\Source\vld\vld - -!IF "$(BUILD_DEBUG)" == "YES" -!IFDEF MSVC_VLD_DIR -MSVC_VLD_FLAGS=-DMSVC_USE_VLD=1 -I$(MSVC_VLD_DIR)\include -!IFDEF WIN64 -MSVC_VLD_LIB=/LIBPATH:$(MSVC_VLD_DIR)/lib/Win64 -!ELSE -MSVC_VLD_LIB=/LIBPATH:$(MSVC_VLD_DIR)/lib/Win32 -!ENDIF -!ENDIF -!ENDIF - -############################################################################### -# Include directories - -GEOS_INCLUDE = -I..\include -I..\capi - -!MESSAGE *** Setting GEOS_INCLUDE $(GEOS_INCLUDE) -!MESSAGE *** Setting INCLUDE $(INCLUDE) - -############################################################################### -# Compilation flags for Release and Debug modes - -GEOS_CPPFLAGS = /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "NOGDI" -GEOS_CPPFLAGS = $(GEOS_CPPFLAGS) /D "GEOS_DLL_EXPORT" $(MSVC_VLD_FLAGS) - -!IF "$(BUILD_DEBUG)" == "YES" -BUILD_PREFIX=_d -GEOS_CFLAGS = /nologo /MDd /GR /Od /W4 /Zi -GEOS_CPPFLAGS = /D "DEBUG" /D "_DEBUG" $(GEOS_CPPFLAGS) -!ELSE -GEOS_CFLAGS = /nologo /MD /GR /O2 /W3 -GEOS_CPPFLAGS = /D "NDEBUG" $(GEOS_CPPFLAGS) -!ENDIF - -# Compiler version specific flags -!IF $(GEOS_MSC) >= 1400 -GEOS_CFLAGS = $(GEOS_CFLAGS) /EHs -GEOS_CPPFLAGS = $(GEOS_CPPFLAGS) /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE" -!ELSE -GEOS_CFLAGS = $(GEOS_CFLAGS) /GX -!ENDIF - -# For Visual C++ 9.0+ use multiple process build -!IF "$(BUILD_BATCH)" == "YES" -!IF $(GEOS_MSC) > 1400 -MPFLAGS = /MP -!MESSAGE *** Setting /MP flag to number of effective processors -!ENDIF -!ENDIF - -!IF "$(ENABLE_INLINE)" == "YES" -GEOS_CFLAGS = /D "GEOS_INLINE" -!ENDIF - -!MESSAGE *** Using GEOS_CFLAGS $(GEOS_CFLAGS) -!MESSAGE *** Using GEOS_CPPFLAGS $(GEOS_CPPFLAGS) - -CFLAGS=$(MPFLAGS) $(GEOS_CFLAGS) $(GEOS_CPPFLAGS) $(GEOS_INCLUDE) - -!MESSAGE *** Complete CFLAGS $(CFLAGS) - -############################################################################### -# Output location - -LIBNAME = geos$(BUILD_PREFIX).lib -DLLNAME = geos$(BUILD_PREFIX).dll -SLIBNAME = geos_i$(BUILD_PREFIX).lib -CDLLNAME = geos_c$(BUILD_PREFIX).dll -CLIBNAME = geos_c_i$(BUILD_PREFIX).lib - -############################################################################### -# Building toolset programs - -MAKE = nmake -CC = cl -RM = del -CP = copy - -# Linker executable -# - Dynamic-Linked Libraries -# $(LINK) /dll -# - Static Libraries (use of lib.exe wrapper is not portable, see VC++ Toolkit 2003) -# $(LINK) /lib -LINK = link.exe -LINKER_FLAGS = $(MSVC_VLD_LIB) - -!MESSAGE ********************************************************************** -# EOF diff --git a/SuperBuild/patches/GEOTIFF/geotiff-1-fix-rpath-macx.diff b/SuperBuild/patches/GEOTIFF/geotiff-1-fix-rpath-macx.diff new file mode 100644 index 0000000000000000000000000000000000000000..64b0cfcc5278ebfe0e04afee03f083afc4cf8bc0 --- /dev/null +++ b/SuperBuild/patches/GEOTIFF/geotiff-1-fix-rpath-macx.diff @@ -0,0 +1,22 @@ +diff -burN libgeotiff-1.4.2.orig/CMakeLists.txt libgeotiff-1.4.2/CMakeLists.txt +--- libgeotiff-1.4.2.orig/CMakeLists.txt Tue Jul 25 17:16:02 2017 ++++ libgeotiff-1.4.2/CMakeLists.txt Tue Jul 25 17:16:40 2017 +@@ -451,12 +451,12 @@ + VERSION ${LINK_VERSION} + SOVERSION ${LINK_SOVERSION} + CLEAN_DIRECT_OUTPUT 1 ) +- if (APPLE) +- set_target_properties( +- ${GEOTIFF_LIBRARY_TARGET} +- PROPERTIES +- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") +- endif() ++ # if (APPLE) ++ # set_target_properties( ++ # ${GEOTIFF_LIBRARY_TARGET} ++ # PROPERTIES ++ # INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") ++ # endif() + + ELSE(UNIX) + # Default: diff --git a/SuperBuild/patches/GEOTIFF/geotiff-fix-configure-for-macx.diff b/SuperBuild/patches/GEOTIFF/geotiff-fix-configure-for-macx.diff deleted file mode 100755 index 32c001b68d59f51198d6264b5173ec282cd5e270..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/GEOTIFF/geotiff-fix-configure-for-macx.diff +++ /dev/null @@ -1,30 +0,0 @@ -diff -burN libgeotiff-1.4.1.orig/configure libgeotiff-1.4.1/configure ---- libgeotiff-1.4.1.orig/configure 2016-04-15 17:57:22.000000000 +0200 -+++ libgeotiff-1.4.1/configure 2016-04-19 09:33:34.000000000 +0200 -@@ -10079,9 +10079,9 @@ - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all -- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \@rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \@rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else -@@ -16101,7 +16101,7 @@ - - PROJ_CONFIG="yes" - -- elif test \( -f "$PROJ_HOME/lib/libproj.a" -o -f "$PROJ_HOME/lib/libproj.so" \) -a -f "$PROJ_HOME/include/proj_api.h"; then -+ elif test \( -f "$PROJ_HOME/lib/libproj.a" -o -f "$PROJ_HOME/lib/libproj.so" -o -f "$PROJ_HOME/lib/libproj.dylib" \) -a -f "$PROJ_HOME/include/proj_api.h"; then - PROJ_LIB="-L$PROJ_HOME/lib -lproj" - PROJ_INC=$PROJ_HOME/include - -@@ -21017,5 +21017,3 @@ - - - echo "" -- -- diff --git a/SuperBuild/patches/GLFW/glfw-1-fixes-win.diff b/SuperBuild/patches/GLFW/glfw-1-fixes-all.diff similarity index 100% rename from SuperBuild/patches/GLFW/glfw-1-fixes-win.diff rename to SuperBuild/patches/GLFW/glfw-1-fixes-all.diff diff --git a/SuperBuild/patches/OSSIM/ossim-5-compat_geos36-all.diff b/SuperBuild/patches/OSSIM/ossim-5-compat_geos36-all.diff new file mode 100644 index 0000000000000000000000000000000000000000..53f7312b8cac596f909c9e2a36e33d278637d120 --- /dev/null +++ b/SuperBuild/patches/OSSIM/ossim-5-compat_geos36-all.diff @@ -0,0 +1,36 @@ +diff -burN OSSIM.orig/ossim/src/ossim/base/ossimPolyArea2d.cpp OSSIM/ossim/src/ossim/base/ossimPolyArea2d.cpp +--- OSSIM.orig/ossim/src/ossim/base/ossimPolyArea2d.cpp 2017-07-04 15:16:30.659669941 +0200 ++++ OSSIM/ossim/src/ossim/base/ossimPolyArea2d.cpp 2017-07-05 09:46:23.142041689 +0200 +@@ -28,19 +28,13 @@ + #include <exception> + #include <vector> + +-class ossimGeometryFactoryWrapper : public ossimReferenced ++class ossimGeometryFactoryWrapper : public ossimReferenced, public geos::geom::GeometryFactory + { + public: + ossimGeometryFactoryWrapper() +- : m_geomFactory(0) +- { +- geos::geom::PrecisionModel *pm = +- new geos::geom::PrecisionModel(geos::geom::PrecisionModel::FLOATING); +- m_geomFactory = new geos::geom::GeometryFactory(pm, -1); +- } +- virtual ~ossimGeometryFactoryWrapper(){if(m_geomFactory) delete m_geomFactory;m_geomFactory=0;} +- +- geos::geom::GeometryFactory* m_geomFactory; ++ : geos::geom::GeometryFactory(new geos::geom::PrecisionModel(geos::geom::PrecisionModel::FLOATING),-1) ++ {} ++ virtual ~ossimGeometryFactoryWrapper(){} + }; + + class OssimPolyArea2dPrivate +@@ -55,7 +49,7 @@ + void deleteGeometry() { if(m_geometry) { delete m_geometry; m_geometry = 0; }} + void setGeometry(const ossimPolygon& polygon, const vector<ossimPolygon>& holes = vector<ossimPolygon>()); + void setGeometry(GeometryPtr geom){deleteGeometry();m_geometry=geom;} +- geos::geom::GeometryFactory* geomFactory(){{return m_globalFactory.valid()?m_globalFactory->m_geomFactory:0;}} ++ geos::geom::GeometryFactory* geomFactory(){{return m_globalFactory.valid()?m_globalFactory.get():0;}} + GeometryPtr m_geometry; + static ossimRefPtr<ossimGeometryFactoryWrapper> m_globalFactory; + }; diff --git a/SuperBuild/patches/PROJ/proj-1-cmakefixes-all.diff b/SuperBuild/patches/PROJ/proj-1-cmakefixes-all.diff new file mode 100644 index 0000000000000000000000000000000000000000..a95c58fbfe34ecdfd12073c1132f9a68811c1f6e --- /dev/null +++ b/SuperBuild/patches/PROJ/proj-1-cmakefixes-all.diff @@ -0,0 +1,34 @@ +diff -burN proj-4.9.3.orig/CMakeLists.txt proj-4.9.3/CMakeLists.txt +--- proj-4.9.3.orig/CMakeLists.txt 2016-08-29 20:47:58.000000000 +0200 ++++ proj-4.9.3/CMakeLists.txt 2017-07-26 12:34:26.071721900 +0200 +@@ -34,6 +34,7 @@ + proj_version(MAJOR 4 MINOR 9 PATCH 3) + set(PROJ_API_VERSION "12") + set(PROJ_BUILD_VERSION "12.0.0") ++option(VERSIONED_OUTPUT "suffix version into output name of binaries." ON) + + ################################################################################# + # Build features and variants +diff -burN proj-4.9.3.orig/src/lib_proj.cmake proj-4.9.3/src/lib_proj.cmake +--- proj-4.9.3.orig/src/lib_proj.cmake 2016-08-29 20:47:58.000000000 +0200 ++++ proj-4.9.3/src/lib_proj.cmake 2017-07-26 12:28:51.098731200 +0200 +@@ -274,11 +274,19 @@ + + + if(WIN32) ++if(VERSIONED_OUTPUT) + set_target_properties(${PROJ_CORE_TARGET} + PROPERTIES + VERSION "${${PROJECT_INTERN_NAME}_BUILD_VERSION}" + OUTPUT_NAME "${PROJ_CORE_TARGET_OUTPUT_NAME}" + CLEAN_DIRECT_OUTPUT 1) ++ else() ++ set_target_properties(${PROJ_CORE_TARGET} ++ PROPERTIES ++ VERSION "${${PROJECT_INTERN_NAME}_BUILD_VERSION}" ++ CLEAN_DIRECT_OUTPUT 1) ++ endif() #VERSIONED_OUTPUT ++ + elseif(BUILD_FRAMEWORKS_AND_BUNDLE) + set_target_properties(${PROJ_CORE_TARGET} + PROPERTIES diff --git a/SuperBuild/patches/PROJ/proj-fix-rpath-for-macx.diff b/SuperBuild/patches/PROJ/proj-fix-rpath-for-macx.diff deleted file mode 100644 index 1ab4acdab9cde44e6aef0930affcdcd525c7cee6..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/PROJ/proj-fix-rpath-for-macx.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff -burN proj-4.8.0.orig/configure proj-4.8.0/configure ---- proj-4.8.0.orig/configure 2016-04-18 17:31:49.000000000 +0200 -+++ proj-4.8.0/configure 2016-04-18 17:32:47.000000000 +0200 -@@ -9044,9 +9044,9 @@ - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all -- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \@rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \@rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else -@@ -16296,4 +16296,3 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi -- diff --git a/SuperBuild/patches/QT4/configure_qt4.bat.in b/SuperBuild/patches/QT4/configure_qt4.bat.in index ce92ad480dce9d657b13a155cf2296568ddebc68..0439a883f043d14e36b2714fe150268641e7738b 100755 --- a/SuperBuild/patches/QT4/configure_qt4.bat.in +++ b/SuperBuild/patches/QT4/configure_qt4.bat.in @@ -4,7 +4,7 @@ set SB_SAVE_LIB=%LIB% set INCLUDE=%INCLUDE%;@QT4_INCLUDE_PREFIX_NATIVE@;@QT4_INCLUDE_PREFIX_NATIVE@\freetype2 set LIB=%LIB%;@QT4_LIB_PREFIX_NATIVE@ -@QT4_CONFIGURE_SCRIPT@ -prefix @QT4_INSTALL_PREFIX_NATIVE@ -L @QT4_LIB_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@\freetype2 -opensource -confirm-license -release -shared -nomake demos -nomake examples -nomake tools -no-phonon-backend -no-phonon -no-script -no-scripttools -no-multimedia -no-audio-backend -no-webkit -no-declarative -no-qt3support -no-xmlpatterns -system-sqlite -qt-sql-sqlite -plugin-sql-sqlite -no-openssl -no-libtiff -no-libmng -system-libpng -system-libjpeg -system-zlib @QT4_SB_CONFIG@ +@QT4_CONFIGURE_SCRIPT@ -prefix @QT4_INSTALL_PREFIX_NATIVE@ -L @QT4_LIB_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@\freetype2 -opensource -confirm-license -release -shared -nomake demos -nomake examples -nomake tools -no-phonon-backend -no-phonon -no-script -no-scripttools -no-multimedia -no-audio-backend -no-webkit -no-declarative -no-qt3support -no-xmlpatterns -no-sql-sqlite -no-openssl -no-libtiff -no-libmng -system-libpng -system-libjpeg -system-zlib @QT4_SB_CONFIG@ set INCLUDE=%SB_SAVE_INCLUDE% set LIB=%SB_SAVE_LIB% diff --git a/SuperBuild/patches/QT4/configure_qt4.sh.in b/SuperBuild/patches/QT4/configure_qt4.sh.in index 8f8a01a3d3b41bf303a9cbd0deccbd9ac44fff72..1ed3ef3f981f0bb5343f9d2202b5d5cd5150bc70 100755 --- a/SuperBuild/patches/QT4/configure_qt4.sh.in +++ b/SuperBuild/patches/QT4/configure_qt4.sh.in @@ -1 +1 @@ -@QT4_CONFIGURE_SCRIPT@ -prefix @QT4_INSTALL_PREFIX_NATIVE@ -L @QT4_LIB_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@/freetype2 -opensource -confirm-license -release -shared -nomake demos -nomake examples -nomake tools -no-phonon-backend -no-phonon -no-script -no-scripttools -no-multimedia -no-audio-backend -no-webkit -no-declarative -no-qt3support -no-xmlpatterns -system-sqlite -qt-sql-sqlite -plugin-sql-sqlite -no-openssl -no-libtiff -no-libmng -system-libpng -system-libjpeg -system-zlib @QT4_SB_CONFIG@ +@QT4_CONFIGURE_SCRIPT@ -prefix @QT4_INSTALL_PREFIX_NATIVE@ -L @QT4_LIB_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@ -I @QT4_INCLUDE_PREFIX_NATIVE@/freetype2 -opensource -confirm-license -release -shared -nomake demos -nomake examples -nomake tools -no-phonon-backend -no-phonon -no-script -no-scripttools -no-multimedia -no-audio-backend -no-webkit -no-declarative -no-qt3support -no-xmlpatterns -no-sql-sqlite -no-openssl -no-libtiff -no-libmng -system-libpng -system-libjpeg -system-zlib @QT4_SB_CONFIG@ diff --git a/SuperBuild/patches/README.md b/SuperBuild/patches/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f912b067aafc01467b1d278f7005259492412261 --- /dev/null +++ b/SuperBuild/patches/README.md @@ -0,0 +1,20 @@ +## Synopsis + +Illustrates how to include a patch to the superbuild sources. This patch will be apply before the compilation of the external project. + +## Example + +Here is how to make a patch for superbuild. The example is here used libgeos but it can be done for any external projects in the OTB Superbuild. + +- cd /tmp +- wget http://download.osgeo.org/geos/geos-3.6.1.tar.bz2 +- tar xjf geos-3.6.1.tar.bz2 +- cp -r geos-3.6.1 geos-3.6.1.orig + +(make changes to geos-3.6.1) + +And prepare diff between two directories + +- diff -burN geos-3.6.1.orig geos-3.6.1 > geos-1-fixes-all.diff + +diff file naming is <project>-<number for applying in correct order>-<all/win/linux/macx>.diff diff --git a/SuperBuild/patches/SHARK/shark-1-disable-hdf5-all.diff b/SuperBuild/patches/SHARK/shark-1-disable-hdf5-all.diff new file mode 100755 index 0000000000000000000000000000000000000000..e7fba1953d4d93c79ac864fc175ad957d97774e6 --- /dev/null +++ b/SuperBuild/patches/SHARK/shark-1-disable-hdf5-all.diff @@ -0,0 +1,21 @@ +diff -burN Shark.orig/CMakeLists.txt Shark/CMakeLists.txt +--- Shark.orig/CMakeLists.txt 2016-09-02 17:04:54.000000000 +0200 ++++ Shark/CMakeLists.txt 2017-07-31 16:41:18.563473752 +0200 +@@ -194,6 +194,8 @@ + ##################################################################### + # HDF5 configuration + ##################################################################### ++option(ENABLE_HDF5 "Use HDF5" ON) ++if(ENABLE_HDF5) + find_package(HDF5 COMPONENTS C CXX HL QUIET) + mark_as_advanced(HDF5_DIR) + if(HDF5_FOUND) +@@ -215,7 +217,7 @@ + else() + message(STATUS "HDF5 not found, skip") + endif() +- ++endif() #ENABLE_HDF5 + ##################################################################### + # ATLAS configuration + ##################################################################### diff --git a/SuperBuild/patches/SHARK/shark-1-disable-hdf5-linux.diff b/SuperBuild/patches/SHARK/shark-1-disable-hdf5-linux.diff deleted file mode 100644 index d0b3df4d7f8355a0da6f4a26ff4d0c4187bca1df..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/SHARK/shark-1-disable-hdf5-linux.diff +++ /dev/null @@ -1,258 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index df8be65..c6c3020 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -191,29 +191,32 @@ endif() - ##################################################################### - # HDF5 configuration - ##################################################################### --find_package(HDF5 COMPONENTS C CXX HL QUIET) --mark_as_advanced(HDF5_DIR) --if(HDF5_FOUND) -- if(HDF5_C_COMPILER_EXECUTABLE AND HDF5_CXX_COMPILER_EXECUTABLE) -- message(STATUS "Checking HDF5 installation: HDF5 installation seems ok.") -- include_directories( ${HDF5_INCLUDE_DIR} ) -- link_directories( ${HDF5_LIBRARY_DIR} ) -- list(APPEND LINK_LIBRARIES ${HDF5_LIBRARIES}) -- else() -- message(STATUS "Checking HDF5 installation:HDF5 package might be broken.") -- if(NOT( HDF5_C_COMPILER_EXECUTABLE)) -- message(STATUS " C Compiler Extension not found.") -- endif() -- if(NOT( HDF5_CXX_COMPILER_EXECUTABLE)) -- message(STATUS " CXX Compiler Extension not found.") -- endif() -- message(STATUS "Disabling HDF5.") -- unset( HDF5_FOUND ) -- endif() --else() -- message(STATUS "HDF5 not found, skip") -+option(ENABLE_HDF5 "Use HDF5" ON) -+ -+if(ENABLE_HDF5) -+ find_package(HDF5 COMPONENTS C CXX HL QUIET) -+ mark_as_advanced(HDF5_DIR) -+ if(HDF5_FOUND) -+ if(HDF5_C_COMPILER_EXECUTABLE AND HDF5_CXX_COMPILER_EXECUTABLE) -+ message(STATUS "Checking HDF5 installation: HDF5 installation seems ok.") -+ include_directories( ${HDF5_INCLUDE_DIR} ) -+ link_directories( ${HDF5_LIBRARY_DIR} ) -+ list(APPEND LINK_LIBRARIES ${HDF5_LIBRARIES}) -+ else() -+ message(STATUS "Checking HDF5 installation:HDF5 package might be broken.") -+ if(NOT( HDF5_C_COMPILER_EXECUTABLE)) -+ message(STATUS " C Compiler Extension not found.") -+ endif() -+ if(NOT( HDF5_CXX_COMPILER_EXECUTABLE)) -+ message(STATUS " CXX Compiler Extension not found.") -+ endif() -+ message(STATUS "Disabling HDF5.") -+ unset( HDF5_FOUND ) -+ endif() -+ else() -+ message(STATUS "HDF5 not found, skip") -+ endif() - endif() -- - ##################################################################### - # ATLAS configuration - ##################################################################### -@@ -222,104 +225,104 @@ endif() - option( ENABLE_CBLAS "Use Installed Linear Algebra Library" ON ) - - if( ENABLE_CBLAS ) -- set(CBLAS_VENDOR FALSE) -- if( APPLE ) -- set(CBLAS_VENDOR "Accelerate") -- set(CBLAS_INCLUDES "") -- set(CBLAS_LIBRARIES "-framework Accelerate" ) -- else() -- #todo: do a propper vendor check -- find_library(OPENBLAS_LIBRARY openblas -- HINTS ${CBLAS_ROOT}/lib /opt/local/lib -- ) -- find_library(CBLAS_LIBRARY cblas -- HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -- ) -- find_library(CLAPACK_LIBRARY lapack -- HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -- ) -- find_library(ATLAS_LIBRARY atlas -- HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -- ) -- mark_as_advanced( -- OPENBLAS_LIBRARY -- CBLAS_LIBRARY -- CLAPACK_LIBRARY -- ATLAS_LIBRARY -- ) -- #find the cblas.h include path -- if(CBLAS_LIBRARY ) -- get_filename_component(CBLAS_LIB_PATH ${CBLAS_LIBRARY} PATH ) -- elseif( OPENBLAS_LIBRARY) -- get_filename_component(CBLAS_LIB_PATH ${OPENBLAS_LIBRARY} PATH ) -- endif() -- if(CBLAS_LIB_PATH) -- find_file(CBLAS_INCLUDES cblas.h -- PATHS ${CBLAS_LIB_PATH} ${CBLAS_LIB_PATH}/../include -- ) -- get_filename_component(CBLAS_INCLUDES ${CBLAS_INCLUDES} PATH ) -- endif() -- if(ATLAS_LIBRARY) -- get_filename_component(ATLAS_LIBRARY_PATH ${ATLAS_LIBRARY} PATH ) -- find_file(CLAPACK_INCLUDES clapack.h -- PATHS -- ${ATLAS_LIBRARY_PATH} -- ${ATLAS_LIBRARY_PATH}/../include -- ${ATLAS_LIBRARY_PATH}/../include/atlas -- ${ATLAS_LIBRARY_PATH}/../../include/atlas -- ) -- get_filename_component(CLAPACK_INCLUDES ${CLAPACK_INCLUDES} PATH ) -- set(CBLAS_INCLUDES ${CBLAS_INCLUDES} ${CLAPACK_INCLUDES}) -- endif() -- -- if( OPENBLAS_LIBRARY AND CBLAS_INCLUDES) -- set(CBLAS_VENDOR "OpenBLAS") -- set(CBLAS_LIBRARIES ${OPENBLAS_LIBRARY}) -- elseif( CBLAS_LIBRARY AND CLAPACK_LIBRARY AND ATLAS_LIBRARY AND CBLAS_INCLUDES) -- set(CBLAS_VENDOR "ATLAS") -- set(CBLAS_LIBRARIES ${CLAPACK_LIBRARY} ${CBLAS_LIBRARY} ${ATLAS_LIBRARY}) -- elseif( CBLAS_LIBRARY AND CBLAS_INCLUDES) -- #check that we can compile a basic program with the libraries we have found -- #vendor versions might come with additional libraries which would be bad. -- try_compile(CBLAS_COMPILE -- "${PROJECT_BINARY_DIR}/cBlasCheck" -- "${CMAKE_SOURCE_DIR}/cBlasCheck.cpp" -- CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CBLAS_INCLUDES}" -- LINK_LIBRARIES ${CBLAS_LIBRARY} -- ) -- if(CBLAS_COMPILE) -- set(CBLAS_VENDOR "GENERIC") -- set(CBLAS_LIBRARIES ${CBLAS_LIBRARY}) -- else() -- message(WARNING "Unknown CBLAS. Can not use it") -- endif() -- endif() -- endif() -+ set(CBLAS_VENDOR FALSE) -+ if( APPLE ) -+ set(CBLAS_VENDOR "Accelerate") -+ set(CBLAS_INCLUDES "") -+ set(CBLAS_LIBRARIES "-framework Accelerate" ) -+ else() -+ #todo: do a propper vendor check -+ find_library(OPENBLAS_LIBRARY openblas -+ HINTS ${CBLAS_ROOT}/lib /opt/local/lib -+ ) -+ find_library(CBLAS_LIBRARY cblas -+ HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -+ ) -+ find_library(CLAPACK_LIBRARY lapack -+ HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -+ ) -+ find_library(ATLAS_LIBRARY atlas -+ HINTS ${ATLAS_ROOT}/lib ${CBLAS_ROOT}/lib /opt/local/lib /usr/lib64/atlas/ -+ ) -+ mark_as_advanced( -+ OPENBLAS_LIBRARY -+ CBLAS_LIBRARY -+ CLAPACK_LIBRARY -+ ATLAS_LIBRARY -+ ) -+ #find the cblas.h include path -+ if(CBLAS_LIBRARY ) -+ get_filename_component(CBLAS_LIB_PATH ${CBLAS_LIBRARY} PATH ) -+ elseif( OPENBLAS_LIBRARY) -+ get_filename_component(CBLAS_LIB_PATH ${OPENBLAS_LIBRARY} PATH ) -+ endif() -+ if(CBLAS_LIB_PATH) -+ find_file(CBLAS_INCLUDES cblas.h -+ PATHS ${CBLAS_LIB_PATH} ${CBLAS_LIB_PATH}/../include -+ ) -+ get_filename_component(CBLAS_INCLUDES ${CBLAS_INCLUDES} PATH ) -+ endif() -+ if(ATLAS_LIBRARY) -+ get_filename_component(ATLAS_LIBRARY_PATH ${ATLAS_LIBRARY} PATH ) -+ find_file(CLAPACK_INCLUDES clapack.h -+ PATHS -+ ${ATLAS_LIBRARY_PATH} -+ ${ATLAS_LIBRARY_PATH}/../include -+ ${ATLAS_LIBRARY_PATH}/../include/atlas -+ ${ATLAS_LIBRARY_PATH}/../../include/atlas -+ ) -+ get_filename_component(CLAPACK_INCLUDES ${CLAPACK_INCLUDES} PATH ) -+ set(CBLAS_INCLUDES ${CBLAS_INCLUDES} ${CLAPACK_INCLUDES}) -+ endif() -+ -+ if( OPENBLAS_LIBRARY AND CBLAS_INCLUDES) -+ set(CBLAS_VENDOR "OpenBLAS") -+ set(CBLAS_LIBRARIES ${OPENBLAS_LIBRARY}) -+ elseif( CBLAS_LIBRARY AND CLAPACK_LIBRARY AND ATLAS_LIBRARY AND CBLAS_INCLUDES) -+ set(CBLAS_VENDOR "ATLAS") -+ set(CBLAS_LIBRARIES ${CLAPACK_LIBRARY} ${CBLAS_LIBRARY} ${ATLAS_LIBRARY}) -+ elseif( CBLAS_LIBRARY AND CBLAS_INCLUDES) -+ #check that we can compile a basic program with the libraries we have found -+ #vendor versions might come with additional libraries which would be bad. -+ try_compile(CBLAS_COMPILE -+ "${PROJECT_BINARY_DIR}/cBlasCheck" -+ "${CMAKE_SOURCE_DIR}/cBlasCheck.cpp" -+ CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CBLAS_INCLUDES}" -+ LINK_LIBRARIES ${CBLAS_LIBRARY} -+ ) -+ if(CBLAS_COMPILE) -+ set(CBLAS_VENDOR "GENERIC") -+ set(CBLAS_LIBRARIES ${CBLAS_LIBRARY}) -+ else() -+ message(WARNING "Unknown CBLAS. Can not use it") -+ endif() -+ endif() -+ endif() - -- if(CBLAS_VENDOR) -- message(STATUS "CBLAS FOUND: " ${CBLAS_VENDOR} " with include directory " ${CBLAS_INCLUDES} ) -- set(SHARK_USE_CBLAS 1) -- list(APPEND EXTRA_INCLUDE_DIRECTORIES ${CBLAS_INCLUDES} ) -- list(APPEND LINK_LIBRARIES ${CBLAS_LIBRARIES}) -- include_directories ( ${CBLAS_INCLUDES} ) -- else() -- message(STATUS "No usable CBLAS Library found. No fast linear Algebra used.") -- endif() -+ if(CBLAS_VENDOR) -+ message(STATUS "CBLAS FOUND: " ${CBLAS_VENDOR} " with include directory " ${CBLAS_INCLUDES} ) -+ set(SHARK_USE_CBLAS 1) -+ list(APPEND EXTRA_INCLUDE_DIRECTORIES ${CBLAS_INCLUDES} ) -+ list(APPEND LINK_LIBRARIES ${CBLAS_LIBRARIES}) -+ include_directories ( ${CBLAS_INCLUDES} ) -+ else() -+ message(STATUS "No usable CBLAS Library found. No fast linear Algebra used.") -+ endif() - -- #Special setup for ATLAS -- if( CBLAS_VENDOR MATCHES "ATLAS" ) -- set( SHARK_USE_ATLAS_LAPACK 1) # ATLAS always contains some LAPACK methods that we can use -+ #Special setup for ATLAS -+ if( CBLAS_VENDOR MATCHES "ATLAS" ) -+ set( SHARK_USE_ATLAS_LAPACK 1) # ATLAS always contains some LAPACK methods that we can use - -- #check for full lapack -- set(CMAKE_REQUIRE_QUIET 1) -- set(CMAKE_REQUIRED_LIBRARIES ${CBLAS_LIBRARIES}) -- check_function_exists(dsyev_ ATLAS_FULL_LAPACK) -+ #check for full lapack -+ set(CMAKE_REQUIRE_QUIET 1) -+ set(CMAKE_REQUIRED_LIBRARIES ${CBLAS_LIBRARIES}) -+ check_function_exists(dsyev_ ATLAS_FULL_LAPACK) - -- if( ATLAS_FULL_LAPACK ) -- set( SHARK_USE_LAPACK 1) -- message(STATUS "Detected ATLAS with full LAPACK package. Using it!") -- endif() -- endif() -+ if( ATLAS_FULL_LAPACK ) -+ set( SHARK_USE_LAPACK 1) -+ message(STATUS "Detected ATLAS with full LAPACK package. Using it!") -+ endif() -+ endif() - endif() - ##################################################################### - # Static Code Analysis diff --git a/SuperBuild/patches/TIFF/CMakeLists.txt b/SuperBuild/patches/TIFF/CMakeLists.txt deleted file mode 100644 index 287ba9ceba8ccc92673fcc929496438f557a6050..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/TIFF/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -# -# 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. -# - -cmake_minimum_required(VERSION 2.8.3) - -project(tiff_install) - -file(GLOB ${PROJECT_NAME}_HEADERS "${TIFF_BUILD_DIR}/tif*.h" ) -file(GLOB ${PROJECT_NAME}_LIBS "${TIFF_BUILD_DIR}/libtiff*.lib" ) -file(GLOB ${PROJECT_NAME}_DLLS "${TIFF_BUILD_DIR}/libtiff*.dll" ) - -foreach(${PROJECT_NAME}_HEADER ${${PROJECT_NAME}_HEADERS}) -install(FILES ${${PROJECT_NAME}_HEADER} - DESTINATION include - COMPONENT Development) -endforeach() - -foreach(${PROJECT_NAME}_LIB ${${PROJECT_NAME}_LIBS}) -install(FILES ${${PROJECT_NAME}_LIB} - DESTINATION lib - COMPONENT Development) -endforeach() - -foreach(${PROJECT_NAME}_DLL ${${PROJECT_NAME}_DLLS}) -install(FILES ${${PROJECT_NAME}_DLL} - DESTINATION bin - COMPONENT Development) -endforeach() \ No newline at end of file diff --git a/SuperBuild/patches/TIFF/nmake.opt b/SuperBuild/patches/TIFF/nmake.opt deleted file mode 100644 index cb1c9ea849db145f3ce36c0e00aeeecfaa6ea0ff..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/TIFF/nmake.opt +++ /dev/null @@ -1,218 +0,0 @@ -# $Id: nmake.opt,v 1.18 2006/06/07 16:33:45 dron Exp $ -# -# Copyright (C) 2004, Andrey Kiselev <dron@ak4719.spb.edu> -# -# Permission to use, copy, modify, distribute, and sell this software and -# its documentation for any purpose is hereby granted without fee, provided -# that (i) the above copyright notices and this permission notice appear in -# all copies of the software and related documentation, and (ii) the names of -# Sam Leffler and Silicon Graphics may not be used in any advertising or -# publicity relating to the software without the specific, prior written -# permission of Sam Leffler and Silicon Graphics. -# -# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, -# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY -# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. -# -# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR -# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, -# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF -# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -# OF THIS SOFTWARE. - -# Compile time parameters for MS Visual C++ compiler. -# You may edit this file to specify building options. - -# -###### Edit the following lines to choose a feature set you need. ####### -# - -# -# Select WINMODE_CONSOLE to build a library which reports errors to stderr, or -# WINMODE_WINDOWED to build such that errors are reported via MessageBox(). -# -WINMODE_CONSOLE = 1 -#WINMODE_WINDOWED = 1 - -# -# Comment out the following lines to disable internal codecs. -# -# Support for CCITT Group 3 & 4 algorithms -CCITT_SUPPORT = 1 -# Support for Macintosh PackBits algorithm -PACKBITS_SUPPORT = 1 -# Support for LZW algorithm -LZW_SUPPORT = 1 -# Support for ThunderScan 4-bit RLE algorithm -THUNDER_SUPPORT = 1 -# Support for NeXT 2-bit RLE algorithm -NEXT_SUPPORT = 1 -# Support for LogLuv high dynamic range encoding -LOGLUV_SUPPORT = 1 - -# -# Uncomment and edit following lines to enable JPEG support. -# -JPEG_SUPPORT = 1 -JPEGDIR = @CMAKE_WIN_INSTALL_PREFIX@ -JPEG_INCLUDE = -I$(JPEGDIR)\include -JPEG_LIB = $(JPEGDIR)\lib\jpeg.lib - -# -# Uncomment and edit following lines to enable ZIP support -# (required for Deflate compression and Pixar log-format) -# -ZIP_SUPPORT = 1 -ZLIBDIR = @CMAKE_WIN_INSTALL_PREFIX@ -ZLIB_INCLUDE = -I$(ZLIBDIR)\include -ZLIB_LIB = $(ZLIBDIR)\lib\zlib.lib - -# -# Uncomment and edit following lines to enable ISO JBIG support -# -#JBIG_SUPPORT = 1 -#JBIGDIR = d:/projects/jbigkit -#JBIG_INCLUDE = -I$(JBIGDIR)/libjbig -#JBIG_LIB = $(JBIGDIR)/libjbig/jbig.lib - -# -# Uncomment following line to enable Pixar log-format algorithm -# (Zlib required). -# -#PIXARLOG_SUPPORT = 1 - -# -# Comment out the following lines to disable strip chopping -# (whether or not to convert single-strip uncompressed images to mutiple -# strips of specified size to reduce memory usage). Default strip size -# is 8192 bytes, it can be configured via the STRIP_SIZE_DEFAULT parameter -# -STRIPCHOP_SUPPORT = 1 -STRIP_SIZE_DEFAULT = 8192 - -# -# Comment out the following lines to disable treating the fourth sample with -# no EXTRASAMPLE_ value as being ASSOCALPHA. Many packages produce RGBA -# files but don't mark the alpha properly. -# -EXTRASAMPLE_AS_ALPHA_SUPPORT = 1 - -# -# Comment out the following lines to disable picking up YCbCr subsampling -# info from the JPEG data stream to support files lacking the tag. -# See Bug 168 in Bugzilla, and JPEGFixupTestSubsampling() for details. -# -CHECK_JPEG_YCBCR_SUBSAMPLING = 1 - -# -####################### Compiler related options. ####################### -# - -# -# Pick debug or optimized build flags. We default to an optimized build -# with no debugging information. -# NOTE: /EHsc option required if you want to build the C++ stream API -# -OPTFLAGS = /Ox /MD /EHsc /W3 /D_CRT_SECURE_NO_DEPRECATE -DHAVE_SNPRINTF -#OPTFLAGS = /Zi - -# -# Uncomment following line to enable using Windows Common RunTime Library -# instead of Windows specific system calls. See notes on top of tif_unix.c -# module for details. -# -USE_WIN_CRT_LIB = 1 - -# Compiler specific options. You may probably want to adjust compilation -# parameters in CFLAGS variable. Refer to your compiler documentation -# for the option reference. -# -MAKE = nmake /nologo -CC = cl /nologo -CXX = cl /nologo -AR = lib /nologo -LD = link /nologo - -CFLAGS = $(OPTFLAGS) $(INCL) $(EXTRAFLAGS) -CXXFLAGS = $(OPTFLAGS) $(INCL) $(EXTRAFLAGS) -EXTRAFLAGS = -LIBS = - -# Name of the output shared library -DLLNAME = libtiff.dll - -# -########### There is nothing to edit below this line normally. ########### -# - -# Set the native cpu bit order -EXTRAFLAGS = -DFILLODER_LSB2MSB $(EXTRAFLAGS) - -!IFDEF WINMODE_WINDOWED -EXTRAFLAGS = -DTIF_PLATFORM_WINDOWED $(EXTRAFLAGS) -LIBS = user32.lib $(LIBS) -!ELSE -EXTRAFLAGS = -DTIF_PLATFORM_CONSOLE $(EXTRAFLAGS) -!ENDIF - -# Codec stuff -!IFDEF CCITT_SUPPORT -EXTRAFLAGS = -DCCITT_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF PACKBITS_SUPPORT -EXTRAFLAGS = -DPACKBITS_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF LZW_SUPPORT -EXTRAFLAGS = -DLZW_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF THUNDER_SUPPORT -EXTRAFLAGS = -DTHUNDER_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF NEXT_SUPPORT -EXTRAFLAGS = -DNEXT_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF LOGLUV_SUPPORT -EXTRAFLAGS = -DLOGLUV_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF JPEG_SUPPORT -LIBS = $(LIBS) $(JPEG_LIB) -EXTRAFLAGS = -DJPEG_SUPPORT -DOJPEG_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF ZIP_SUPPORT -LIBS = $(LIBS) $(ZLIB_LIB) -EXTRAFLAGS = -DZIP_SUPPORT $(EXTRAFLAGS) -!IFDEF PIXARLOG_SUPPORT -EXTRAFLAGS = -DPIXARLOG_SUPPORT $(EXTRAFLAGS) -!ENDIF -!ENDIF - -!IFDEF JBIG_SUPPORT -LIBS = $(LIBS) $(JBIG_LIB) -EXTRAFLAGS = -DJBIG_SUPPORT $(EXTRAFLAGS) -!ENDIF - -!IFDEF STRIPCHOP_SUPPORT -EXTRAFLAGS = -DSTRIPCHOP_DEFAULT=TIFF_STRIPCHOP -DSTRIP_SIZE_DEFAULT=$(STRIP_SIZE_DEFAULT) $(EXTRAFLAGS) -!ENDIF - -!IFDEF EXTRASAMPLE_AS_ALPHA_SUPPORT -EXTRAFLAGS = -DDEFAULT_EXTRASAMPLE_AS_ALPHA $(EXTRAFLAGS) -!ENDIF - -!IFDEF CHECK_JPEG_YCBCR_SUBSAMPLING -EXTRAFLAGS = -DCHECK_JPEG_YCBCR_SUBSAMPLING $(EXTRAFLAGS) -!ENDIF - -!IFDEF USE_WIN_CRT_LIB -EXTRAFLAGS = -DAVOID_WIN32_FILEIO $(EXTRAFLAGS) -!ELSE -EXTRAFLAGS = -DUSE_WIN32_FILEIO $(EXTRAFLAGS) -!ENDIF diff --git a/SuperBuild/patches/TIFF/tiff-1-cmakefixes-all.diff b/SuperBuild/patches/TIFF/tiff-1-cmakefixes-all.diff new file mode 100644 index 0000000000000000000000000000000000000000..a0c3b6f08bcaa234f96f07d266cf1bdbaae189bc --- /dev/null +++ b/SuperBuild/patches/TIFF/tiff-1-cmakefixes-all.diff @@ -0,0 +1,163 @@ +diff -burN tiff-4.0.8.orig/CMakeLists.txt tiff-4.0.8/CMakeLists.txt +--- tiff-4.0.8.orig/CMakeLists.txt Thu Jul 20 12:53:54 2017 ++++ tiff-4.0.8/CMakeLists.txt Thu Jul 20 13:17:05 2017 +@@ -601,21 +601,35 @@ + set(CXX_SUPPORT TRUE) + endif() + +-# OpenGL and GLUT +-find_package(OpenGL) +-find_package(GLUT) +-set(HAVE_OPENGL FALSE) +-if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) ++# OpenGL support ++option(with_opengl "Enable opengl support (requires opengl and glut packages)" ON) ++if(with_opengl) ++ # OpenGL and GLUT ++ find_package(OpenGL) ++ find_package(GLUT) ++ set(HAVE_OPENGL FALSE) ++ if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) + set(HAVE_OPENGL TRUE) +-endif() +-# Purely to satisfy the generated headers: +-check_include_file(GL/gl.h HAVE_GL_GL_H) +-check_include_file(GL/glu.h HAVE_GL_GLU_H) +-check_include_file(GL/glut.h HAVE_GL_GLUT_H) +-check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) +-check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) +-check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) ++ endif() ++ # Purely to satisfy the generated headers: ++ check_include_file(GL/gl.h HAVE_GL_GL_H) ++ check_include_file(GL/glu.h HAVE_GL_GLU_H) ++ check_include_file(GL/glut.h HAVE_GL_GLUT_H) ++ check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) ++ check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) ++ check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) ++else() #with_opengl ++ set(HAVE_OPENGL FALSE) ++ #force opengl headers check to FALSE. ++ set(HAVE_GL_GL_H FALSE) ++ set(HAVE_GL_GLU_H FALSE) ++ set(HAVE_GL_GLUT_H FALSE) ++ set(HAVE_GLUT_GLUT_H FALSE) ++ set(HAVE_OPENGL_GL_H FALSE) ++ set(HAVE_OPENGL_GLU_H FALSE) ++endif() #with_opengl + ++ + # Win32 IO + set(win32_io FALSE) + if(WIN32) +@@ -713,19 +727,38 @@ + if(LIBLZMA_LIBRARIES) + list(APPEND TIFF_LIBRARY_DEPS ${LIBLZMA_LIBRARIES}) + endif() +- + #report_values(TIFF_INCLUDES TIFF_LIBRARY_DEPS) + ++# NEED_LIBPORT is later updated in port/CMakeLists.txt and ++# used in libtiff/CMakeLists.txt to generate tif_config.h. ++# see libtiff/tif_config.h.cmake.in for usage ++set(NEED_LIBPORT FALSE) ++ + # Process subdirectories + add_subdirectory(port) + add_subdirectory(libtiff) +-add_subdirectory(tools) +-add_subdirectory(test) +-add_subdirectory(contrib) ++ ++option(with_tools "build executables in tools directory" ON) ++if(with_tools) ++ add_subdirectory(tools) ++endif() ++option(with_test "build executables in tests directory" ON) ++if(with_test) ++ add_subdirectory(test) ++endif() ++ ++option(with_contrib "build executables in contrib directory" ON) ++if(with_contrib) ++ add_subdirectory(contrib) ++endif() ++ + add_subdirectory(build) +-add_subdirectory(man) +-add_subdirectory(html) +- ++ ++option(with_docs "build html and man docs" ON) ++if(with_docs) ++ add_subdirectory(man) ++ add_subdirectory(html) ++endif() + #message(STATUS "EXTRA_DIST: ${EXTRA_DIST}") + + message(STATUS "") +diff -burN tiff-4.0.8.orig/contrib/iptcutil/iptcutil.c tiff-4.0.8/contrib/iptcutil/iptcutil.c +--- tiff-4.0.8.orig/contrib/iptcutil/iptcutil.c Thu Jul 20 12:53:54 2017 ++++ tiff-4.0.8/contrib/iptcutil/iptcutil.c Thu Jul 20 13:14:55 2017 +@@ -19,7 +19,7 @@ + # include <fcntl.h> + #endif + +-#ifdef WIN32 ++#ifdef _MSC_VER + #define STRNICMP strnicmp + #else + #define STRNICMP strncasecmp +diff -burN tiff-4.0.8.orig/libtiff/tif_config.h.cmake.in tiff-4.0.8/libtiff/tif_config.h.cmake.in +--- tiff-4.0.8.orig/libtiff/tif_config.h.cmake.in Thu Jul 20 12:53:54 2017 ++++ tiff-4.0.8/libtiff/tif_config.h.cmake.in Thu Jul 20 13:15:21 2017 +@@ -259,3 +259,9 @@ + + /* Define to `unsigned int' if <sys/types.h> does not define. */ + #undef size_t ++ ++#ifdef _MSC_VER ++#pragma warning(disable : 4996) /* function deprecation warnings */ ++#endif ++ ++#cmakedefine NEED_LIBPORT 1 +diff -burN tiff-4.0.8.orig/port/CMakeLists.txt tiff-4.0.8/port/CMakeLists.txt +--- tiff-4.0.8.orig/port/CMakeLists.txt Thu Jul 20 12:53:54 2017 ++++ tiff-4.0.8/port/CMakeLists.txt Thu Jul 20 13:15:32 2017 +@@ -32,25 +32,35 @@ + strtoull.c) + + set(port_USED_FILES ${port_SOURCES} ${port_HEADERS}) +- ++ set(LIBPORT_USED FALSE) + if(NOT HAVE_GETOPT) + list(APPEND port_USED_FILES getopt.c) ++ set(LIBPORT_USED TRUE) + endif() + if(NOT HAVE_LFIND) + list(APPEND port_USED_FILES lfind.c) ++ set(LIBPORT_USED TRUE) + endif() + if(MSVC AND NOT HAVE_SNPRINTF) + list(APPEND port_USED_FILES snprintf.c) ++ set(LIBPORT_USED TRUE) + endif() + if(NOT HAVE_STRCASECMP) + list(APPEND port_USED_FILES strcasecmp.c) ++ set(LIBPORT_USED TRUE) + endif() + if(NOT HAVE_STRTOUL) + list(APPEND port_USED_FILES strtoul.c) ++ set(LIBPORT_USED TRUE) + endif() + if(NOT HAVE_STRTOULL) + list(APPEND port_USED_FILES strtoull.c) ++ set(LIBPORT_USED TRUE) + endif() ++ ++# We set NEED_LIBPORT with PARENT_SCOPE ++# because it is used in libtiff/CMakeLists.txt ++set(NEED_LIBPORT ${LIBPORT_USED} PARENT_SCOPE) + + add_library(port STATIC ${port_USED_FILES}) + diff --git a/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff b/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff deleted file mode 100755 index 04b1ef4f181fe243c5d9413e76a129e57981689d..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff -burN tiff-4.0.6.orig/CMakeLists.txt tiff-4.0.6/CMakeLists.txt ---- tiff-4.0.6.orig/CMakeLists.txt 2016-10-27 17:24:17.000000000 +0200 -+++ tiff-4.0.6/CMakeLists.txt 2016-10-27 17:25:43.000000000 +0200 -@@ -602,19 +602,23 @@ - endif() - - # OpenGL and GLUT --find_package(OpenGL) --find_package(GLUT) --set(HAVE_OPENGL FALSE) --if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) -+option(WITH_OPENGL "Enable opengl and glut support" ON) -+ -+if(WITH_OPENGL) -+ find_package(OpenGL) -+ find_package(GLUT) -+ set(HAVE_OPENGL FALSE) -+ if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) - set(HAVE_OPENGL TRUE) -+ endif() -+ # Purely to satisfy the generated headers: -+ check_include_file(GL/gl.h HAVE_GL_GL_H) -+ check_include_file(GL/glu.h HAVE_GL_GLU_H) -+ check_include_file(GL/glut.h HAVE_GL_GLUT_H) -+ check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) -+ check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) -+ check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) - endif() --# Purely to satisfy the generated headers: --check_include_file(GL/gl.h HAVE_GL_GL_H) --check_include_file(GL/glu.h HAVE_GL_GLU_H) --check_include_file(GL/glut.h HAVE_GL_GLUT_H) --check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) --check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) --check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) - - # Win32 IO - set(win32_io FALSE) diff --git a/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff b/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff deleted file mode 100755 index 04b1ef4f181fe243c5d9413e76a129e57981689d..0000000000000000000000000000000000000000 --- a/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff -burN tiff-4.0.6.orig/CMakeLists.txt tiff-4.0.6/CMakeLists.txt ---- tiff-4.0.6.orig/CMakeLists.txt 2016-10-27 17:24:17.000000000 +0200 -+++ tiff-4.0.6/CMakeLists.txt 2016-10-27 17:25:43.000000000 +0200 -@@ -602,19 +602,23 @@ - endif() - - # OpenGL and GLUT --find_package(OpenGL) --find_package(GLUT) --set(HAVE_OPENGL FALSE) --if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) -+option(WITH_OPENGL "Enable opengl and glut support" ON) -+ -+if(WITH_OPENGL) -+ find_package(OpenGL) -+ find_package(GLUT) -+ set(HAVE_OPENGL FALSE) -+ if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) - set(HAVE_OPENGL TRUE) -+ endif() -+ # Purely to satisfy the generated headers: -+ check_include_file(GL/gl.h HAVE_GL_GL_H) -+ check_include_file(GL/glu.h HAVE_GL_GLU_H) -+ check_include_file(GL/glut.h HAVE_GL_GLUT_H) -+ check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) -+ check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) -+ check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) - endif() --# Purely to satisfy the generated headers: --check_include_file(GL/gl.h HAVE_GL_GL_H) --check_include_file(GL/glu.h HAVE_GL_GLU_H) --check_include_file(GL/glut.h HAVE_GL_GLUT_H) --check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) --check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) --check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) - - # Win32 IO - set(win32_io FALSE) diff --git a/Utilities/Maintenance/SuperbuildDownloadList.sh b/Utilities/Maintenance/SuperbuildDownloadList.sh index 6b09c62d4173125b529c295ed58ebea2bda67d7e..d7bd8c493517194cf2ef22accbc6b0e4565d3291 100755 --- a/Utilities/Maintenance/SuperbuildDownloadList.sh +++ b/Utilities/Maintenance/SuperbuildDownloadList.sh @@ -20,77 +20,62 @@ # -export LC_ALL=C -if [ $# -eq 2 ]; then -DOWNLOAD_DIR=$(readlink -f $1) -OUTPUT_DIR=$(readlink -f $2) -else -echo 'Usage: '$0' <download_directory> <archive_output_directory>' -exit 1 + +if [ $# -lt 2 ]; then + echo "Usage: $0 <download_directory> <archive_output_directory>" + exit 1 fi -WGET="wget -nv -q" +export LC_ALL=C -SB_CMAKE_DIR_REL=$(dirname $0)/../../SuperBuild/CMake -SB_CMAKE_DIR=$(readlink -f ${SB_CMAKE_DIR_REL}) +DOWNLOAD_DIR=$(readlink -f "$1") +OUTPUT_DIR=$(readlink -f "$2") +WGET=$(which wget) -cd $(dirname $0)/../../ -GIT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') +CUR_DIR="$( cd "$( dirname "$0" )" && pwd )" +SB_CMAKE_DIR_REL=$CUR_DIR/../../SuperBuild/CMake +SB_CMAKE_DIR=$(readlink -f "${SB_CMAKE_DIR_REL}") +cd "$CUR_DIR/../../" || echo "cannot cd to CUR_DIR/../../" +GIT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') #if a branch contains release-X.Y then xdk is taken from packages/xdk/OTB-X.Y if [[ "$GIT_BRANCH" =~ release-* ]]; then - VERSION=$(echo ${GIT_BRANCH}| sed 's/.*release-//'| cut -d'-' -f 1) + VERSION=$(echo "${GIT_BRANCH}"| sed 's/.*release-//'| cut -d'-' -f 1) else VERSION="develop" fi -DOWNLOAD_LIST=$(grep -h -E "^[^#]*\"https?://.*(\.tar\.gz|\.tar\.bz2|\.tgz|\.tar\.xz|\.zip|export=download).*\"" ${SB_CMAKE_DIR}/*.cmake | grep -o -E "https?://[^\"]*" | sed "s/\/\(download\)\?$//" | sort | uniq) +CMAKE_FILES=$(find $SB_CMAKE_DIR -maxdepth 1 -type f -name "External_*") +DOWNLOAD_LIST=$(grep -h -E '^[^#]*\"https?://.*(\.tar\.gz|\.tar\.bz2|\.tgz|\.tar\.xz|\.zip|export=download).*\"' ${CMAKE_FILES} | + grep -o -E 'https?://[^\"]*' | sort | uniq) DOWNLOAD_NAMES= -mkdir -p ${DOWNLOAD_DIR} -cd ${DOWNLOAD_DIR} +#echo "DOWNLOAD_LIST=$DOWNLOAD_LIST" +mkdir -p "${DOWNLOAD_DIR}" +cd "${DOWNLOAD_DIR}" || echo "cannot cd to DOWNLOAD_DIR" echo "Downloading files to ${DOWNLOAD_DIR}/" - for url in ${DOWNLOAD_LIST}; do - # clean log file - - file_name=$(echo "${url}" | grep -o -E "[^\/]+$") - docs_google=$(echo "${file_name}" | grep -F "export=download") - if [ "${docs_google}" = "" ]; then - if [ -f "$file_name" ]; then - echo "$file_name exists, skipping" - fi; - $WGET -N ${url} - ret="$?" - if [ $ret -gt 0 -a $ret -ne 8 ]; then - echo "Download failed for URL: '${url}'. wget finished with exit status '$ret'." - exit 1; - fi - else - # look into the original file for a valid download name - file_name=$(grep -h -A 3 -B 3 -F "${url}" ${SB_CMAKE_DIR}/*.cmake | grep -E "^[^#]*DOWNLOAD_NAME" | grep -o -E "[^ ]*\.(tar\.gz|tar\.bz2|tar\.xz|zip)" | uniq) - if [ -z "$file_name" ]; then - echo "Can't find correct filename for url ${url} : skip download" - exit 1; - else - # echo "Download ${file_name}..." - $WGET ${url} -O ${file_name} - fi + file_name=$(echo "${url}" | grep -o -E '[^\/]+$') + $WGET -N "${url}" + ret="$?" + if [ $ret -gt 0 ] && [ $ret -ne 8 ]; then + echo "Download failed for URL: '${url}'. wget finished with exit status '$ret'." + exit 1; fi if [ "$file_name" != "" ]; then - DOWNLOAD_NAMES="${DOWNLOAD_NAMES} ${file_name}" + DOWNLOAD_NAMES="${DOWNLOAD_NAMES} ${file_name}" + else + echo "invalid filename for url=${url}" && exit 1; fi - done ARCHIVE_NAME="SuperBuild-archives-$VERSION" echo "Creating archive ${OUTPUT_DIR}/$ARCHIVE_NAME.tar.bz2" - -cd ${OUTPUT_DIR} -tar -cjf $ARCHIVE_NAME.tar.bz2 -C ${DOWNLOAD_DIR} ${DOWNLOAD_NAMES} - +cd "${OUTPUT_DIR}" || echo "cannot cd to OUTPUT_DIR" +touch "${DOWNLOAD_DIR}/OTBSuperBuild.readme" +tar -cjf "$ARCHIVE_NAME.tar.bz2" -C "${DOWNLOAD_DIR}" ${DOWNLOAD_NAMES} OTBSuperBuild.readme echo "Saving md5sum to ${OUTPUT_DIR}/$ARCHIVE_NAME.md5" -md5sum $ARCHIVE_NAME.tar.bz2 > $ARCHIVE_NAME.md5 +md5sum "$ARCHIVE_NAME.tar.bz2" > "$ARCHIVE_NAME.md5"