WSL/SLF GitLab Repository

Commit 952e495b authored by Mathias Bavay's avatar Mathias Bavay
Browse files

The DEMObject can now be configured to automatically calculate slope/azimuth...

The DEMObject can now be configured to automatically calculate slope/azimuth and/or normals and/or curvature (or none) by setting a few flags.

The installation has been improved (compiling the plugins in their own directory helps)
parent d1f92142
......@@ -112,9 +112,9 @@ if (DEST MATCHES "par")
endif(DEST MATCHES "par")
INSTALL(FILES ${hfiles} ${phfiles} DESTINATION include/meteoio)
FILE(GLOB solibs "${PROJECT_SOURCE_DIR}/lib/libmeteoio*.so")
FILE(GLOB plugins "${PROJECT_SOURCE_DIR}/lib/lib*.so")
FILE(GLOB alibs "${PROJECT_SOURCE_DIR}/lib/*.a")
FILE(GLOB solibs "${PROJECT_SOURCE_DIR}/lib/libmeteoio*.so*")
FILE(GLOB plugins "${PROJECT_SOURCE_DIR}/lib/plugins/lib*.so*")
FILE(GLOB alibs "${PROJECT_SOURCE_DIR}/lib/*.a*")
if (DEST MATCHES "par")
FILE(GLOB modules "${PROJECT_SOURCE_DIR}/lib/*.module")
endif(DEST MATCHES "par")
......
......@@ -10,6 +10,7 @@ int main(void) {
IOHandler io(cfg);
//reading dem
dem.setUpdatePpt(DEMObject::SLOPE);
io.readDEM(dem);
//writing some statistics about this dem
......
......@@ -16,6 +16,7 @@
along with MeteoIO. If not, see <http://www.gnu.org/licenses/>.
*/
#include <meteoio/DEMObject.h>
#include <limits.h>
/**
* @file DEMObject.cc
......@@ -36,6 +37,7 @@ DEMObject::DEMObject(const slope_type& _algorithm) : Grid2DObject(), slope(), az
min_altitude = min_slope = min_curvature = std::numeric_limits<double>::max();
max_altitude = max_slope = max_curvature = -std::numeric_limits<double>::max();
slope_failures = curvature_failures = 0;
update_flag = INT_MAX;
setDefaultAlgorithm(_algorithm);
}
......@@ -55,6 +57,7 @@ DEMObject::DEMObject(const unsigned int& _ncols, const unsigned int& _nrows,
min_altitude = min_slope = min_curvature = std::numeric_limits<double>::max();
max_altitude = max_slope = max_curvature = -std::numeric_limits<double>::max();
slope_failures = curvature_failures = 0;
update_flag = INT_MAX;
setDefaultAlgorithm(_algorithm);
}
......@@ -75,6 +78,7 @@ DEMObject::DEMObject(const unsigned int& _ncols, const unsigned int& _nrows,
slope(), azi(), curvature(), Nx(), Ny(), Nz()
{
slope_failures = curvature_failures = 0;
update_flag = INT_MAX;
setDefaultAlgorithm(_algorithm);
if(_update==false) {
updateAllMinMax();
......@@ -94,6 +98,7 @@ DEMObject::DEMObject(const Grid2DObject& _dem, const bool& _update, const slope_
slope(), azi(), curvature(), Nx(), Ny(), Nz()
{
slope_failures = curvature_failures = 0;
update_flag = INT_MAX;
setDefaultAlgorithm(_algorithm);
if(_update==false) {
updateAllMinMax();
......@@ -124,6 +129,7 @@ DEMObject::DEMObject(const DEMObject& _dem, const unsigned int& _nx, const unsig
}
slope_failures = curvature_failures = 0;
update_flag = INT_MAX;
setDefaultAlgorithm(_algorithm);
if(_update==false) {
updateAllMinMax();
......@@ -132,6 +138,24 @@ DEMObject::DEMObject(const DEMObject& _dem, const unsigned int& _nx, const unsig
}
}
/**
* @brief Set the properties that will be calculated by the object when updating
* The following properties can be turned on/off: slope/azimuth and/or normals, and/or curvatures.
* Flags are combined using the binary "|" operator.
* @param in_update_flag parameters to update
*/
void DEMObject::setUpdatePpt(const update_type& in_update_flag) {
update_flag = in_update_flag;
}
/**
* @brief Get the properties that will be calculated by the object when updating
* @return combination of flags set with the binary "|" operator
*/
int DEMObject::getUpdatePpt() {
return update_flag;
}
/**
* @brief Force the computation of the local slope, azimuth, normal vector and curvature.
* It has to be called manually since it can require some time to compute. Without this call,
......@@ -143,12 +167,18 @@ void DEMObject::update(const slope_type& algorithm) {
//(such as slope, azimuth, normal vector)
// Creating tables
slope.resize(ncols, nrows);
azi.resize(ncols, nrows);
curvature.resize(ncols, nrows);
Nx.resize(ncols, nrows);
Ny.resize(ncols, nrows);
Nz.resize(ncols, nrows);
if(update_flag&SLOPE) {
slope.resize(ncols, nrows);
azi.resize(ncols, nrows);
}
if(update_flag&CURVATURE) {
curvature.resize(ncols, nrows);
}
if(update_flag&NORMAL) {
Nx.resize(ncols, nrows);
Ny.resize(ncols, nrows);
Nz.resize(ncols, nrows);
}
CalculateAziSlopeCurve(algorithm);
updateAllMinMax();
......@@ -211,12 +241,17 @@ void DEMObject::setDefaultAlgorithm(const slope_type& _algorithm) {
*/
void DEMObject::updateAllMinMax() {
//updates the min/max parameters of all 2D tables
if(update_flag&SLOPE) {
min_slope = slope.getMin(IOUtils::PARSE_NODATA);
max_slope = slope.getMax(IOUtils::PARSE_NODATA);
}
if(update_flag&CURVATURE) {
min_curvature = curvature.getMin(IOUtils::PARSE_NODATA);
max_curvature = curvature.getMax(IOUtils::PARSE_NODATA);
}
min_altitude = grid2D.getMin(IOUtils::PARSE_NODATA);
max_altitude = grid2D.getMax(IOUtils::PARSE_NODATA);
min_slope = slope.getMin(IOUtils::PARSE_NODATA);
max_slope = slope.getMax(IOUtils::PARSE_NODATA);
min_curvature = curvature.getMin(IOUtils::PARSE_NODATA);
max_curvature = curvature.getMax(IOUtils::PARSE_NODATA);
}
/**
......@@ -227,15 +262,32 @@ void DEMObject::updateAllMinMax() {
void DEMObject::printFailures() {
bool header=true;
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if(((slope(i,j)==IOUtils::nodata) || (curvature(i,j)==IOUtils::nodata)) && (grid2D(i,j)!=IOUtils::nodata)) {
if(header==true) {
std::cout << "[i] DEM slope/curvature could not be computed at the following points \n";
std::cout << "[i]\tGrid Point\tElevation\tSlope\tCurvature\n";
header=false;
if(update_flag&SLOPE) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if((slope(i,j)==IOUtils::nodata) && (grid2D(i,j)!=IOUtils::nodata)) {
if(header==true) {
std::cout << "[i] DEM slope could not be computed at the following points \n";
std::cout << "[i]\tGrid Point\tElevation\tSlope\n";
header=false;
}
std::cout << "[i]\t(" << i << "," << j << ")" << "\t\t" << grid2D(i,j) << "\t\t" << slope(i,j) << "\n";
}
}
}
}
if(update_flag&CURVATURE) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if((curvature(i,j)==IOUtils::nodata) && (grid2D(i,j)!=IOUtils::nodata)) {
if(header==true) {
std::cout << "[i] DEM curvature could not be computed at the following points \n";
std::cout << "[i]\tGrid Point\tElevation\tCurvature\n";
header=false;
}
std::cout << "[i]\t(" << i << "," << j << ")" << "\t\t" << grid2D(i,j) << "\t\t" << curvature(i,j) << "\n";
}
std::cout << "[i]\t(" << i << "," << j << ")" << "\t\t" << grid2D(i,j) << "\t\t" << slope(i,j) << "\t" << curvature(i,j) << "\n";
}
}
}
......@@ -257,8 +309,15 @@ void DEMObject::sanitize() {
if(slope_failures>0 || curvature_failures>0) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if(((slope(i,j)==IOUtils::nodata) || (curvature(i,j)==IOUtils::nodata)) && (grid2D(i,j)!=IOUtils::nodata)) {
grid2D(i,j) = IOUtils::nodata;
if(update_flag&SLOPE) {
if((slope(i,j)==IOUtils::nodata) && (grid2D(i,j)!=IOUtils::nodata)) {
grid2D(i,j) = IOUtils::nodata;
}
}
if(update_flag&CURVATURE) {
if((curvature(i,j)==IOUtils::nodata) && (grid2D(i,j)!=IOUtils::nodata)) {
grid2D(i,j) = IOUtils::nodata;
}
}
}
}
......@@ -409,6 +468,8 @@ void DEMObject::getPointsBetween(Coords point1, Coords point2, std::vector<GRID_
void DEMObject::CalculateAziSlopeCurve(slope_type algorithm) {
//This computes the slope and the aspect at a given cell as well as the x and y components of the normal vector
double A[4][4]; //table to store neigbouring heights: 3x3 matrix but we want to start at [1][1]
double _slope, _azi, _curvature;
double _Nx, _Ny, _Nz;
if(algorithm==DFLT) {
algorithm = dflt_algorithm;
......@@ -416,87 +477,63 @@ void DEMObject::CalculateAziSlopeCurve(slope_type algorithm) {
slope_failures = curvature_failures = 0;
if(algorithm==HICK) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
Nx(i,j) = Ny(i,j) = Nz(i,j) = slope(i,j) = IOUtils::nodata;
azi(i,j) = IOUtils::nodata;
curvature(i,j) = IOUtils::nodata;
} else {
getNeighbours(i, j, A);
CalculateHick(A, slope(i,j), Nx(i,j), Ny(i,j), Nz(i,j));
azi(i,j) = CalculateAspect(Nx(i,j), Ny(i,j), Nz(i,j), slope(i,j));
curvature(i,j) = getCurvature(A);
}
}
}
CalculateSlope = &DEMObject::CalculateHick;
} else if(algorithm==HORN) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
Nx(i,j) = Ny(i,j) = Nz(i,j) = slope(i,j) = IOUtils::nodata;
azi(i,j) = IOUtils::nodata;
curvature(i,j) = IOUtils::nodata;
} else {
getNeighbours(i, j, A);
CalculateHorn(A, slope(i,j), Nx(i,j), Ny(i,j), Nz(i,j));
azi(i,j) = CalculateAspect(Nx(i,j), Ny(i,j), Nz(i,j), slope(i,j));
curvature(i,j) = getCurvature(A);
}
}
}
CalculateSlope = &DEMObject::CalculateHorn;
} else if(algorithm==CORR) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
Nx(i,j) = Ny(i,j) = Nz(i,j) = slope(i,j) = IOUtils::nodata;
azi(i,j) = IOUtils::nodata;
curvature(i,j) = IOUtils::nodata;
} else {
getNeighbours(i, j, A);
CalculateCorripio(A, slope(i,j), Nx(i,j), Ny(i,j), Nz(i,j));
azi(i,j) = CalculateAspect(Nx(i,j), Ny(i,j), Nz(i,j), slope(i,j));
curvature(i,j) = getCurvature(A);
}
}
}
CalculateSlope = &DEMObject::CalculateCorripio;
} else if(algorithm==FLEM) {
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
Nx(i,j) = Ny(i,j) = Nz(i,j) = slope(i,j) = IOUtils::nodata;
azi(i,j) = IOUtils::nodata;
curvature(i,j) = IOUtils::nodata;
} else {
getNeighbours(i, j, A);
CalculateFleming(A, slope(i,j), Nx(i,j), Ny(i,j), Nz(i,j));
azi(i,j) = CalculateAspect(Nx(i,j), Ny(i,j), Nz(i,j), slope(i,j));
curvature(i,j) = getCurvature(A);
CalculateSlope = &DEMObject::CalculateFleming;
} else if(algorithm==D8) {
CalculateSlope = &DEMObject::CalculateHick;
} else {
throw InvalidArgumentException("Chosen slope algorithm not available", AT);
}
//Now, calculate the parameters using the previously defined function pointer
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
if(update_flag&SLOPE) {
_slope = _azi = IOUtils::nodata;
}
if(update_flag&CURVATURE) {
_curvature = IOUtils::nodata;
}
if(update_flag&NORMAL) {
_Nx = _Ny = _Nz = IOUtils::nodata;
}
} else {
getNeighbours(i, j, A);
(this->*CalculateSlope)(A, _slope, _Nx, _Ny, _Nz);
_azi = CalculateAspect(_Nx, _Ny, _Nz, _slope);
_curvature = getCurvature(A);
if(update_flag&SLOPE) {
slope(i,j) = _slope;
azi(i,j) = _azi;
}
if(update_flag&CURVATURE) {
curvature(i,j) = _curvature;
}
if(update_flag&NORMAL) {
Nx(i,j) = _Nx;
Ny(i,j) = _Ny;
Nz(i,j) = _Nz;
}
}
}
} else if(algorithm==D8) {
}
if((update_flag&SLOPE) && (algorithm==D8)) { //extra processing required: discretization
for ( unsigned int i = 0; i < ncols; i++ ) {
for ( unsigned int j = 0; j < nrows; j++ ) {
if( grid2D(i,j) == IOUtils::nodata ) {
Nx(i,j) = Ny(i,j) = Nz(i,j) = slope(i,j) = IOUtils::nodata;
azi(i,j) = IOUtils::nodata;
curvature(i,j) = IOUtils::nodata;
} else {
getNeighbours(i, j, A);
CalculateHick(A, slope(i,j), Nx(i,j), Ny(i,j), Nz(i,j));
azi(i,j) = CalculateAspect(Nx(i,j), Ny(i,j), Nz(i,j), slope(i,j), IOUtils::nodata);
//TODO: process flats by an extra algorithm
curvature(i,j) = getCurvature(A);
if(azi(i,j)!=IOUtils::nodata)
azi(i,j) = fmod(floor( (azi(i,j)+22.5)/45. )*45., 360.);
if(slope(i,j)!=IOUtils::nodata)
slope(i,j) = floor( slope(i,j)+0.5 );
}
}
}
} else {
throw InvalidArgumentException("Chosen slope algorithm not available", AT);
}
//Inform the user is some points have unexpectidly not been computed
......@@ -818,6 +855,7 @@ void DEMObject::Serialize(POPBuffer &buf, bool pack)
buf.Pack(&max_curvature,1);
buf.Pack(&slope_failures,1);
buf.Pack(&curvature_failures,1);
buf.Pack(&update_flag,1);
marshal_slope_type(buf, dflt_algorithm, 0, FLAG_MARSHAL, NULL);
marshal_DOUBLE2D(buf, grid2D, 0, FLAG_MARSHAL, NULL);
marshal_DOUBLE2D(buf, slope, 0, FLAG_MARSHAL, NULL);
......@@ -841,6 +879,7 @@ void DEMObject::Serialize(POPBuffer &buf, bool pack)
buf.UnPack(&max_curvature,1);
buf.UnPack(&slope_failures,1);
buf.UnPack(&curvature_failures,1);
buf.UnPack(&update_flag,1);
grid2D.clear();//if(grid2D!=NULL)delete(grid2D);
slope.clear();
azi.clear();
......
......@@ -58,6 +58,14 @@ class DEMObject : public Grid2DObject {
CORR, ///< surface normal vector using the two triangle method (Corripio, 2002) and eight-neighbor algorithm (Horn, 1981) for border cells
D8 ///< discretized azimuth directions (angles for N, NE, etc) and slope rounded to nearest integer
} slope_type;
///Keywords for automatic update of parameters. They can be combined with "|"
typedef enum UPDATE_TYPE {
NO_UPDATE=0, ///< no updates at all
SLOPE=1, ///< update the slopes
NORMAL=2, ///< update the normals
CURVATURE=4 ///< update the curvatures
} update_type;
DEMObject(const slope_type& _algorithm=DFLT);
......@@ -76,6 +84,9 @@ class DEMObject : public Grid2DObject {
const bool& _update=true, const slope_type& _algorithm=DFLT);
void setDefaultAlgorithm(const slope_type& _algorithm);
void setUpdatePpt(const update_type& in_update_flag);
int getUpdatePpt();
void update(const std::string& algorithm);
void update(const slope_type& algorithm=DFLT);
void updateAllMinMax();
......@@ -93,6 +104,7 @@ class DEMObject : public Grid2DObject {
void CalculateFleming(double A[4][4], double& slope, double& Nx, double& Ny, double& Nz);
void CalculateHorn(double A[4][4], double& slope, double& Nx, double& Ny, double& Nz);
void CalculateCorripio(double A[4][4], double& slope, double& Nx, double& Ny, double& Nz);
void (DEMObject::*CalculateSlope)(double A[4][4], double& slope, double& Nx, double& Ny, double& Nz);
double getCurvature(double A[4][4]);
double steepestGradient(double A[4][4]);
......@@ -104,6 +116,7 @@ class DEMObject : public Grid2DObject {
double safeGet(const int i, const int j);
slope_type dflt_algorithm;
int update_flag;
unsigned int slope_failures; ///<contains the number of points that have an elevation but no slope
unsigned int curvature_failures; ///<contains the number of points that have an elevation but no curvature
......
......@@ -229,9 +229,9 @@ class IOInterface : public PluginObject {
/**
* @brief Write a Grid2DObject
* @param grid_in (Grid2DObject) The grid to write
* @param name (string) Identifier usefull for the output plugin (it could become part of a file name, a db table, etc)
* @param options (string) Identifier usefull for the output plugin (it could become part of a file name, a db table, etc)
*/
virtual void write2DGrid(const Grid2DObject& grid_in, const std::string& name="") = 0;
virtual void write2DGrid(const Grid2DObject& grid_in, const std::string& options="") = 0;
};
} //end namespace
......
......@@ -43,7 +43,7 @@ IF(PLUGIN_SMETIO)
#SET_TARGET_PROPERTIES(${SMETIONAME} PROPERTIES LINKER_LANGUAGE C)
TARGET_LINK_LIBRARIES(${SMETIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${SMETIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${SMETIONAME})
......@@ -53,7 +53,7 @@ IF(PLUGIN_ARCIO)
ADD_LIBRARY(${ARCIONAME} ARCIO.cc)
TARGET_LINK_LIBRARIES(${ARCIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${ARCIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${ARCIONAME})
......@@ -63,7 +63,7 @@ IF(PLUGIN_PGMIO)
ADD_LIBRARY(${PGMIONAME} PGMIO.cc)
TARGET_LINK_LIBRARIES(${PGMIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${PGMIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${PGMIONAME})
......@@ -73,7 +73,7 @@ IF(PLUGIN_ARPSIO)
ADD_LIBRARY(${ARPSIONAME} ARPSIO.cc)
TARGET_LINK_LIBRARIES(${ARPSIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${ARPSIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${ARPSIONAME})
......@@ -83,7 +83,7 @@ IF(PLUGIN_GRASSIO)
ADD_LIBRARY(${GRASSIONAME} GrassIO.cc)
TARGET_LINK_LIBRARIES(${GRASSIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${GRASSIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${GRASSIONAME})
......@@ -93,7 +93,7 @@ IF(PLUGIN_GEOTOPIO)
ADD_LIBRARY(${GEOTOPIONAME} GeotopIO.cc)
TARGET_LINK_LIBRARIES(${GEOTOPIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${GEOTOPIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${GEOTOPIONAME})
......@@ -103,7 +103,7 @@ IF(PLUGIN_SNIO)
ADD_LIBRARY(${SNIONAME} SNIO.cc)
TARGET_LINK_LIBRARIES(${SNIONAME} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${SNIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${SNIONAME})
......@@ -117,7 +117,7 @@ IF(PLUGIN_GSNIO)
TARGET_LINK_LIBRARIES(${GSNIONAME} ${GSOAPPP} ${SHAREDNAME})
ADD_DEPENDENCIES(${GSNIONAME} wsdl2cpp gsnclient)
SET_TARGET_PROPERTIES(${GSNIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${GSNIONAME})
......@@ -132,7 +132,7 @@ IF(PLUGIN_IMISIO)
ADD_LIBRARY(${IMISIONAME} ImisIO.cc)
TARGET_LINK_LIBRARIES(${IMISIONAME} ${ORACLE_OCCI} ${ORACLE_CLNTSH} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${IMISIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${IMISIONAME})
......@@ -147,7 +147,7 @@ IF(PLUGIN_BORMAIO)
ADD_LIBRARY(${BORMAIONAME} BormaIO.cc)
TARGET_LINK_LIBRARIES(${BORMAIONAME} ${LibXML++_LIBRARIES} ${SHAREDNAME})
SET_TARGET_PROPERTIES(${BORMAIONAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/plugins
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
SOVERSION ${VERSION_MAJOR})
SET(MYPLUGINS ${MYPLUGINS} ${BORMAIONAME})
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment