Commit 652ebcbd authored by Pierre Kraemer's avatar Pierre Kraemer

Merge remote-tracking branch 'cgogn/develop' into develop

parents 730a9724 4dc1bdba
...@@ -168,7 +168,8 @@ void MCMesh::updateRender() ...@@ -168,7 +168,8 @@ void MCMesh::updateRender()
void MCMesh::fromFile(char* fname) void MCMesh::fromFile(char* fname)
{ {
myImg = new SAlgo::MC::Image<DATATYPE>(); myImg = new SAlgo::MC::Image<DATATYPE>();
myImg->loadInrgz(fname); //myImg->loadInrgz(fname);
myImg->loadVox(fname);
CGoGNout << "Image chargee"<<CGoGNendl; CGoGNout << "Image chargee"<<CGoGNendl;
CGoGNout << myImg->getWidthX() <<"x"<< myImg->getWidthY() <<"x"<< myImg->getWidthZ() << "voxels"<<CGoGNendl; CGoGNout << myImg->getWidthX() <<"x"<< myImg->getWidthY() <<"x"<< myImg->getWidthZ() << "voxels"<<CGoGNendl;
} }
......
...@@ -31,7 +31,7 @@ Viewer::Viewer() : ...@@ -31,7 +31,7 @@ Viewer::Viewer() :
m_drawFaces(true), m_drawFaces(true),
m_drawNormals(false), m_drawNormals(false),
m_drawTopo(false), m_drawTopo(false),
m_drawBoundaryTopo(true), m_drawBoundaryTopo(false),
m_render(NULL), m_render(NULL),
m_phongShader(NULL), m_phongShader(NULL),
m_flatShader(NULL), m_flatShader(NULL),
...@@ -87,7 +87,7 @@ void Viewer::cb_initGL() ...@@ -87,7 +87,7 @@ void Viewer::cb_initGL()
m_render = new Algo::Render::GL2::MapRender() ; m_render = new Algo::Render::GL2::MapRender() ;
m_topoRender = new Algo::Render::GL2::TopoRender() ; m_topoRender = new Algo::Render::GL2::TopoRender() ;
m_topoRender->setInitialDartsColor(0.25f, 0.25f, 0.25f) ; m_topoRender->setInitialDartsColor(1.0f, 1.00f, 1.00f) ;
m_positionVBO = new Utils::VBO() ; m_positionVBO = new Utils::VBO() ;
m_normalVBO = new Utils::VBO() ; m_normalVBO = new Utils::VBO() ;
...@@ -552,11 +552,14 @@ void Viewer::importMesh(std::string& filename) ...@@ -552,11 +552,14 @@ void Viewer::importMesh(std::string& filename)
// myMap.enableQuickTraversal<VERTEX>() ; // myMap.enableQuickTraversal<VERTEX>() ;
std::cout << "The mesh is " << (myMap.isOpen() ? "open" : "closed") << std::endl;
m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::POINTS) ; m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::POINTS) ;
m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::LINES) ; m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::LINES) ;
m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::TRIANGLES) ; m_render->initPrimitives<PFP>(myMap, Algo::Render::GL2::TRIANGLES) ;
m_topoRender->updateData<PFP>(myMap, position, 0.85f, 0.85f, m_drawBoundaryTopo) ; m_topoRender->updateData<PFP>(myMap, position, 0.85f, 0.85f, m_drawBoundaryTopo, true) ;
bb = Algo::Geometry::computeBoundingBox<PFP>(myMap, position) ; bb = Algo::Geometry::computeBoundingBox<PFP>(myMap, position) ;
normalBaseSize = bb.diagSize() / 100.0f ; normalBaseSize = bb.diagSize() / 100.0f ;
......
...@@ -29,8 +29,10 @@ ...@@ -29,8 +29,10 @@
#include "Algo/Modelisation/polyhedron.h" #include "Algo/Modelisation/polyhedron.h"
#include "Algo/Import/import.h" #include "Algo/Import/import.h"
#include "Algo/Geometry/volume.h" #include "Algo/Geometry/volume.h"
#include "Algo/Modelisation/tetrahedralization.h"
#include "Algo/Geometry/area.h" #include "Algo/Geometry/area.h"
#include "Utils/chrono.h" #include "Utils/chrono.h"
#include "Algo/Export/exportVol.h" #include "Algo/Export/exportVol.h"
...@@ -172,12 +174,14 @@ void MyQT::cb_Open() ...@@ -172,12 +174,14 @@ void MyQT::cb_Open()
for (Dart d = tra.begin(); d != tra.end(); d = tra.next()) for (Dart d = tra.begin(); d != tra.end(); d = tra.next())
{ {
// float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position); // float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color[d] = PFP::VEC3(1.0,0,0);
// color[d] = VEC3(v,0,0); // color[d] = VEC3(v,0,0);
// if (v>maxV) // if (v>maxV)
// maxV=v; // maxV=v;
if(myMap.isVolumeIncidentToBoundary(d)) if(myMap.isVolumeIncidentToBoundary(d))
color[d] = VEC3(0,0,0); color[d] = VEC3(1,0.41,0.706);
} }
// for (unsigned int i = color.begin(); i != color.end(); color.next(i)) // for (unsigned int i = color.begin(); i != color.end(); color.next(i))
// { // {
...@@ -399,7 +403,7 @@ int main(int argc, char **argv) ...@@ -399,7 +403,7 @@ int main(int argc, char **argv)
{ {
*/ */
if(extension == std::string(".map")) if(extension == std::string(".mapbin"))
{ {
myMap.loadMapBin(filename); myMap.loadMapBin(filename);
position = myMap.getAttribute<VEC3, VERTEX,MAP>("position") ; position = myMap.getAttribute<VEC3, VERTEX,MAP>("position") ;
...@@ -421,6 +425,17 @@ int main(int argc, char **argv) ...@@ -421,6 +425,17 @@ int main(int argc, char **argv)
float maxV = 0.0f; float maxV = 0.0f;
for (Dart d = tra.begin(); d != tra.end(); d = tra.next()) for (Dart d = tra.begin(); d != tra.end(); d = tra.next())
{ {
// float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color[d] = PFP::VEC3(1.0,0,0);
// if (v>maxV)
// maxV=v;
if(myMap.isVolumeIncidentToBoundary(d))
color[d] = PFP::VEC3(1,0.41,0.706);
//else
// color[d] = PFP::VEC3(1.0,0,0);
/*
float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position); float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color[d] = VEC3(v,0,0); color[d] = VEC3(v,0,0);
if (v>maxV) if (v>maxV)
...@@ -435,6 +450,7 @@ int main(int argc, char **argv) ...@@ -435,6 +450,7 @@ int main(int argc, char **argv)
{ {
color[i][0] /= maxV; color[i][0] /= maxV;
color[i][2] = 1.0f - color[i][0]; color[i][2] = 1.0f - color[i][0];
*/
} }
} }
...@@ -460,6 +476,9 @@ int main(int argc, char **argv) ...@@ -460,6 +476,9 @@ int main(int argc, char **argv)
// Algo::Volume::Export::exportNAS<PFP>(myMap,position,"/tmp/test1.nas"); // Algo::Volume::Export::exportNAS<PFP>(myMap,position,"/tmp/test1.nas");
// Algo::Volume::Export::exportVTU<PFP>(myMap,position,"/tmp/test3.vtu"); // Algo::Volume::Export::exportVTU<PFP>(myMap,position,"/tmp/test3.vtu");
} }
myMap.check();
// un peu d'interface // un peu d'interface
QApplication app(argc, argv); QApplication app(argc, argv);
MyQT sqt; MyQT sqt;
......
...@@ -157,6 +157,17 @@ void MyQT::operation(int x) ...@@ -157,6 +157,17 @@ void MyQT::operation(int x)
m_selected2=NIL; m_selected2=NIL;
} }
break; break;
case 10:
CGoGNout <<"split surface"<<CGoGNendl;
if (!m_selecteds.empty())
{
myMap.splitSurface(m_selecteds);
updateMap();
m_selected=NIL;
m_selected2=NIL;
m_selecteds.clear();
}
break;
default: default:
break; break;
...@@ -233,7 +244,15 @@ void MyQT::cb_redraw() ...@@ -233,7 +244,15 @@ void MyQT::cb_redraw()
m_render_topo->overdrawDart(myMap, m_selected, 11, 1.0f, 0.0f, 0.0f); m_render_topo->overdrawDart(myMap, m_selected, 11, 1.0f, 0.0f, 0.0f);
if (m_selected2 != NIL) if (m_selected2 != NIL)
if(!m_selecteds.empty())
{
for(std::vector<Dart>::iterator it = m_selecteds.begin() ; it != m_selecteds.end() ; ++it)
m_render_topo->overdrawDart(myMap, *it, 11, 0.0f, 0.0f, 1.0f);
}
m_render_topo->overdrawDart(myMap, m_selected2, 11, 0.0f, 1.0f, 0.0f); m_render_topo->overdrawDart(myMap, m_selected2, 11, 0.0f, 1.0f, 0.0f);
} }
void MyQT::cb_mousePress(int button, int x, int y) void MyQT::cb_mousePress(int button, int x, int y)
...@@ -253,6 +272,17 @@ void MyQT::cb_mousePress(int button, int x, int y) ...@@ -253,6 +272,17 @@ void MyQT::cb_mousePress(int button, int x, int y)
} }
updateGL(); updateGL();
} }
if(Control())
{
Dart d = m_render_topo->picking(myMap, x,y); // nb
if (button == Qt::LeftButton)
{
if (d == Dart::nil())
m_selecteds.clear();
else
m_selecteds.push_back(d);
}
}
} }
void MyQT::cb_keyPress(int keycode) void MyQT::cb_keyPress(int keycode)
......
...@@ -93,6 +93,7 @@ protected: ...@@ -93,6 +93,7 @@ protected:
#endif #endif
Dart m_selected; Dart m_selected;
Dart m_selected2; Dart m_selected2;
std::vector<Dart> m_selecteds;
DartMarker<MAP> dm; DartMarker<MAP> dm;
float m_shift; float m_shift;
......
...@@ -36,7 +36,16 @@ ...@@ -36,7 +36,16 @@
</size> </size>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="margin"> <property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number> <number>2</number>
</property> </property>
<property name="spacing"> <property name="spacing">
...@@ -99,6 +108,11 @@ ...@@ -99,6 +108,11 @@
<string>deleteFace</string> <string>deleteFace</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>splitSurface</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item> <item>
......
...@@ -245,6 +245,24 @@ void MyQT::operation(int x) ...@@ -245,6 +245,24 @@ void MyQT::operation(int x)
updateMap(); updateMap();
} }
break; break;
case 13 :
CGoGNout <<"split volume"<<CGoGNendl;
if (!m_selecteds.empty())
{
myMap.splitVolume(m_selecteds);
m_selecteds.clear();
updateMap();
}
break;
case 14 :
CGoGNout <<"cut volume"<<CGoGNendl;
if (!m_selecteds.empty())
{
myMap.cutVolume(m_selecteds);
m_selecteds.clear();
updateMap();
}
break;
default: default:
break; break;
} }
...@@ -459,12 +477,12 @@ void MyQT::cb_mousePress(int button, int x, int y) ...@@ -459,12 +477,12 @@ void MyQT::cb_mousePress(int button, int x, int y)
{ {
if (button == Qt::LeftButton) if (button == Qt::LeftButton)
{ {
Dart d = m_render_topo_boundary->picking(myMap, x,y,true); m_selecteds.push_back(Dart(173));
if (d != Dart::nil()) m_selecteds.push_back(Dart(186));
{ m_selecteds.push_back(Dart(185));
Dart e = myMap.phi2(d); m_selecteds.push_back(Dart(171));
std::cout << "Dart "<< d.index << " / phi2:" << e.index << std::endl; m_selecteds.push_back(Dart(170));
} m_selecteds.push_back(Dart(174));
} }
if (button == Qt::RightButton) if (button == Qt::RightButton)
{ {
...@@ -472,8 +490,6 @@ void MyQT::cb_mousePress(int button, int x, int y) ...@@ -472,8 +490,6 @@ void MyQT::cb_mousePress(int button, int x, int y)
if (d != Dart::nil()) if (d != Dart::nil())
{ {
m_selecteds.push_back(d); m_selecteds.push_back(d);
Dart e = myMap.phi2(d);
std::cout << "Dart "<< d.index << " / phi2:" << e.index << std::endl;
} }
} }
...@@ -836,7 +852,7 @@ void MyQT::importMesh(std::string& filename) ...@@ -836,7 +852,7 @@ void MyQT::importMesh(std::string& filename)
std::cerr << "could not import " << filename << std::endl ; std::cerr << "could not import " << filename << std::endl ;
return ; return ;
} }
else else
position = myMap.getAttribute<VEC3, VERTEX, MAP>(attrNames[0]) ; position = myMap.getAttribute<VEC3, VERTEX, MAP>(attrNames[0]) ;
m_selected = NIL; m_selected = NIL;
......
...@@ -155,6 +155,16 @@ ...@@ -155,6 +155,16 @@
<string>deleteVolume</string> <string>deleteVolume</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>splitVolume</string>
</property>
</item>
<item>
<property name="text">
<string>cutVolume</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="6" column="0">
......
...@@ -89,7 +89,6 @@ IF(WIN32) ...@@ -89,7 +89,6 @@ IF(WIN32)
ENDIF(WIN32) ENDIF(WIN32)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
find_package(Boost COMPONENTS regex REQUIRED)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
find_package(GLEW REQUIRED) find_package(GLEW REQUIRED)
...@@ -130,16 +129,14 @@ SET (CGoGN_EXT_INCLUDES ...@@ -130,16 +129,14 @@ SET (CGoGN_EXT_INCLUDES
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIRS} ${GLEW_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
) )
# define libs for external libs # define libs for external libs
SET (CGoGN_EXT_LIBS SET (CGoGN_EXT_LIBS
nl nl
${OPENGL_LIBRARY} ${OPENGL_LIBRARY}
${GLEW_LIBRARIES} ${GLEW_LIBRARIES}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${Boost_REGEX_LIBRARY}
tinyxml2 tinyxml2
) )
......
English version bellow
Dpendences Linux Linux dependencies
================= ==================
installer les paquets suivants: install the following packages:
cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev libxml2-dev libboost-all-dev zlib1g-dev qt4-designer qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev zlib1g-dev libqt4-dev qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev
Pour compiler CGoGN
===================
* on compile tout d'abord les bibliothques third-party :
```
cd CGoGN/ThirdParty/build
cmake ..
make (-j x si vous avez x cores)
make install
```
La mme chose en debug:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
```
On peut fixer certaines option pour ne pas tout compiler:
* WITH_ASSIMP -> compile et utilise la librairie Assimp
* WITH_ZINRI -> compile et utilise la librairie Zinri
* WITH_PYTHONQT -> pour SCHNApps
* ensuite on compile CGoGN :
```
cd CGoGN/build
cmake ..
make (-j x si vous avez x cores)
```
Et en Debug avec:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
```
Certaines options sont disponibles :
* BUILD_SHARED_LIBS -Q experimental !
* ONELIB -> compilation en une seule lib (libcgogn.a) au lieu de 4
* WITH_ASSIMP -> utilise Assimp (auto set par third party compil)
* WITH_ZINRI -> utilise Zinri (auto set par third party compil)
* WITH_QT -> minimize les dependence si pas besoin de Qt (VRJuggler)
* WITH_GLEWMX -> pour utiliser GLEWMX a la place de GELW (pour VRJuggler)
Les librairies sont generees dans lib/Release et lib/Debug
Les binaires sont generes dans bin/Release et bin/Debug
* on peut ensuite compiler SCHNApps ainsi que les plugins fournis :
```
cd CGoGN/SCHNApps/build
cmake ..
make (-j x si vous avez x cores)
```
Et en Debug avec:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
```
Mac Dependencies
=================
To compile CGoGN on MAC
Des exemples de donnes (fichiers trianbgz, off, etc..) sont accessible l'adresse suivante: * install XCode and command line tools.
https://iggservis.u-strasbg.fr/Data/data.zip * install Qt4 (4.8) and QtCreator
* install (or build) libQGLViewer
* install cmake (native or with homebrew)
* install with homebrew : lzlib, glew, suite-sparse
To install suite-sparse package, you must first
add the homebrew/science repository with the following command :
brew tap homebrew/science
ENGLISH VERSION Compilation is the same as on Linux for CGoGN
===============
Linux dependencies
==================
install the following packages:
cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev libxml2-dev libboost-all-dev zlib1g-dev qt4-designer qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev
To compile CGoGN To compile CGoGN
================ ================
...@@ -93,7 +28,7 @@ To compile CGoGN ...@@ -93,7 +28,7 @@ To compile CGoGN
``` ```
cd CGoGN/ThirdParty/build cd CGoGN/ThirdParty/build
cmake .. cmake ..
make (-j x if you have x cores) make (-j x if you have x cores)
make install make install
``` ```
...@@ -101,7 +36,8 @@ To compile CGoGN ...@@ -101,7 +36,8 @@ To compile CGoGN
``` ```
cd ../buildDebug cd ../buildDebug
cmake .. cmake ..
make make (-j x if you have x cores)
make install
``` ```
Some options are available to not compile everything: Some options are available to not compile everything:
...@@ -133,6 +69,7 @@ To compile CGoGN ...@@ -133,6 +69,7 @@ To compile CGoGN
* WITH_QT -> to minimize dependencies and compilation time * WITH_QT -> to minimize dependencies and compilation time
* WITH_GLEWMX -> to use GLEWMX (for VRJuggler users) * WITH_GLEWMX -> to use GLEWMX (for VRJuggler users)
* we can then compile SCHNApps and the provided plugins : * we can then compile SCHNApps and the provided plugins :
``` ```
......
...@@ -21,7 +21,6 @@ SET( USE_OGL_CORE_PROFILE OFF CACHE BOOL "use OpenGL 3.3 core profile (do not wo ...@@ -21,7 +21,6 @@ SET( USE_OGL_CORE_PROFILE OFF CACHE BOOL "use OpenGL 3.3 core profile (do not wo
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
find_package(Boost COMPONENTS regex system REQUIRED)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
find_package(GLEW REQUIRED) find_package(GLEW REQUIRED)
find_package(Qt4 REQUIRED) find_package(Qt4 REQUIRED)
...@@ -74,7 +73,6 @@ SET (EXT_INCLUDES ...@@ -74,7 +73,6 @@ SET (EXT_INCLUDES
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIRS} ${GLEW_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
${QT_INCLUDE_DIR} ${QT_INCLUDE_DIR}
${QGLVIEWER_INCLUDE_DIR} ${QGLVIEWER_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS}
...@@ -90,8 +88,6 @@ SET (EXT_LIBS ...@@ -90,8 +88,6 @@ SET (EXT_LIBS
${OPENGL_LIBRARY} ${OPENGL_LIBRARY}
${GLEW_LIBRARIES} ${GLEW_LIBRARIES}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${Boost_SYSTEM_LIBRARY}
${Boost_REGEX_LIBRARY}
${QT_LIBRARIES} ${QT_LIBRARIES}
${PYTHON_LIBRARIES} ${PYTHON_LIBRARIES}
${SUITESPARSE_LIBRARIES} ${SUITESPARSE_LIBRARIES}
......
...@@ -16,3 +16,5 @@ ADD_SUBDIRECTORY(surface_radiance) ...@@ -16,3 +16,5 @@ ADD_SUBDIRECTORY(surface_radiance)
ADD_SUBDIRECTORY(volume_import) ADD_SUBDIRECTORY(volume_import)
#ADD_SUBDIRECTORY(volume_render) #ADD_SUBDIRECTORY(volume_render)
#ADD_SUBDIRECTORY(volumetric)
#ifndef _TEXTURE_H_ #ifndef _TEXTURE_H_
#define _TEXTURE_H_ #define _TEXTURE_H_
#include "Utils/gl_def.h"
#include <QSize>
namespace CGoGN namespace CGoGN
{ {
......
...@@ -39,6 +39,7 @@ class Camera; ...@@ -39,6 +39,7 @@ class Camera;
class MapHandlerGen; class MapHandlerGen;
class CellSelectorGen; class CellSelectorGen;
struct Texture; struct Texture;
class ObjectHandlerGen;
typedef QMap<QString, Plugin*> PluginSet; typedef QMap<QString, Plugin*> PluginSet;
typedef QMap<QString, View*> ViewSet; typedef QMap<QString, View*> ViewSet;
...@@ -51,6 +52,8 @@ typedef QMap<QString, Utils::GLSLShader*> ShaderSet; ...@@ -51,6 +52,8 @@ typedef QMap<QString, Utils::GLSLShader*> ShaderSet;
typedef QMap<QString, Texture*> TextureSet; typedef QMap<QString, Texture*> TextureSet;
typedef QMap<QString, ObjectHandlerGen*> ObjectSet;
} // namespace SCHNApps } // namespace SCHNApps
} // namespace CGoGN } // namespace CGoGN
......
...@@ -2,7 +2,9 @@ cmake_minimum_required(VERSION 2.6) ...@@ -2,7 +2,9 @@ cmake_minimum_required(VERSION 2.6)
project(Zinri) project(Zinri)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) find_package(ZLIB REQUIRED)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIRS})
file( file(
GLOB_RECURSE GLOB_RECURSE
...@@ -11,3 +13,4 @@ file( ...@@ -11,3 +13,4 @@ file(
) )
add_library( Zinri ${source_files} ) add_library( Zinri ${source_files} )
target_link_libraries(Zinri ${ZLIB_LIBRARIES})
# all build directory ignored !
*
# all build directory ignored !
*
...@@ -69,6 +69,7 @@ SET (COMMON_LIBS ...@@ -69,6 +69,7 @@ SET (COMMON_LIBS
${LIBXML2_LIBRARIES} ${LIBXML2_LIBRARIES}
${Boost_SYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}
${Boost_REGEX_LIBRARY} ${Boost_REGEX_LIBRARY}
tinyxml2
) )