Commit f5529246 authored by Sylvain Thery's avatar Sylvain Thery

Visual compilation

parent 6fd95536
...@@ -6,28 +6,18 @@ ELSE (ONELIB) ...@@ -6,28 +6,18 @@ ELSE (ONELIB)
ENDIF (ONELIB) ENDIF (ONELIB)
#IF(${CMAKE_BUILD_TYPE} MATCHES Release|release|RELEASE) IF (WIN32)
# SET(CGoGN_LIBS ${CGoGN_LIBS_R}) link_directories( ${CGoGN_ROOT_DIR}/lib/${ConfigurationName} ${Boost_LIBRARY_DIRS})
#ELSE() SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/) # Release/Debug added automatically by visual
# SET(CGoGN_LIBS ${CGoGN_LIBS_D}) ELSE()
#ENDIF() link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE} )
SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE} )
ENDIF()
#IF(WIN32)
# link_directories(${CGoGN_ROOT_DIR}/lib/$(ConfigurationName)
# ${Boost_LIBRARY_DIRS})
#ELSE(WIN32)
SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE} )
link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE} )
include_directories( include_directories(
${CGoGN_ROOT_DIR}/include ${CGoGN_ROOT_DIR}/include
${CGoGN_EXT_INCLUDES}) ${CGoGN_EXT_INCLUDES})
IF (COMPILE_SANDBOX) IF (COMPILE_SANDBOX)
add_subdirectory(SandBox) add_subdirectory(SandBox)
ENDIF() ENDIF()
......
*** english version below ***  *** english version below ***
Compilation sous VisualExpress C++ Compilation sous VisualExpress C++
Prérequis: Prérequis:
Visual Studio ou C++ Express (testé avec 2010 express) Visual Studio ou C++ Express 2013 (C++11
CMake (au moins 2.8) CMake (au moins 2.8)
Unziper le windows_dependencies.zip (http://iggservis.u-strasbg.fr/Data/) a la racine de CGoGN Unziper le windows_dependencies.zip (http://iggservis.u-strasbg.fr/Data/) a la racine de CGoGN
...@@ -11,32 +11,27 @@ Installer boost et Qt (4.8.x pas de 5.0 pour le moment) ...@@ -11,32 +11,27 @@ Installer boost et Qt (4.8.x pas de 5.0 pour le moment)
Attention installer les binaires de Qt dans une version de compilateur differente (VS2008/VS2010) Attention installer les binaires de Qt dans une version de compilateur differente (VS2008/VS2010)
permet d'executer mais pas de debugger ! permet d'executer mais pas de debugger !
Si vous utiliser BoostPro (http://www.boostpro.com) installer toutes les versions multithread dll
pour eviter les pb de compilation.
Le plus sur mais plus long est de compiler soi-même Qt et Boost (bon courage) Le plus sur mais plus long est de compiler soi-même Qt et Boost (bon courage)
Pour les "ThirdParty libs": Pour les "ThirdParty libs":
Lancer CMake (gui) Lancer CMake (gui)
Mettre le chemin de la racine de CGoGN + /ThirdParty pour les sources Mettre le chemin de la racine de CGoGN + /ThirdParty pour les sources
Mettre le chemin de la racine de CGoGN + /ThirdParty/build pour le build en release Mettre le chemin de la racine de CGoGN + /ThirdParty/build
Mettre le chemin de la racine de CGoGN + /ThirdParty/buildDebug pour le build en debug
Sous windows les 2 versions sont nécessaires.
La suite vaut pour les 2 répertoires:
Cliquer sur Configure Cliquer sur Configure
Choisir le bon compilateur (celui de votre version de Visual C++) Choisir le bon compilateur (celui de votre version de Visual C++)
Modifier les variables en fonctions de ce que vous voulez compiler (README.TXT de ThirdParty) Modifier les variables en fonctions de ce que vous voulez compiler (README.TXT de ThirdParty)
Modifier le CMAKE_PREFIX_PATH si nécessaire (cf remarque dépendances) Modifier le CMAKE_PREFIX_PATH si nécessaire (cf remarque dépendances)
Recliquer sur Configure Recliquer sur Configure
Cliquer sur Generate Cliquer sur Generate
Aller sous visual, charger et compiler les 2 solutions Aller sous visual, charger et compiler en Release et Debug
Ne pas oublier de générer la cible INSTALL (une seule fois) Ne pas oublier de générer la cible INSTALL (une seule fois)
Pour CGoGN: Pour CGoGN:
Relancer CMake Relancer CMake
Mettre le chemin de la racine de CGoGN pour les sources Mettre le chemin de la racine de CGoGN pour les sources
Mettre le chemin de la racine de CGoGN + /build (par exemple) pour le build Mettre le chemin de la racine de CGoGN + /build pour le build
Cliquer sur Configure Cliquer sur Configure
Choisir le bon compilateur (celui de votre version de Visual C++) Choisir le bon compilateur (celui de votre version de Visual C++)
Modifier les variables comme pour ThirdParty (et CMAKE_PREFIX_PATH si nécessaire) Modifier les variables comme pour ThirdParty (et CMAKE_PREFIX_PATH si nécessaire)
...@@ -44,6 +39,7 @@ Recliquer sur Configure ...@@ -44,6 +39,7 @@ Recliquer sur Configure
Cliquer sur Generate Cliquer sur Generate
Si il ne trouve pas Qt lui remplir la variable QT_QMAKE_EXECUTABLE Si il ne trouve pas Qt lui remplir la variable QT_QMAKE_EXECUTABLE
Si il ne trouve pas boost, remplir la variable Boost_INCLUDE_DIR (C:\Boost1.55\include par exemple)
Aller dans Visual et double-cliquer sur CGoGN.sln !! Aller dans Visual et double-cliquer sur CGoGN.sln !!
...@@ -61,7 +57,6 @@ Si vous voulez utiliser vos propre versions des dépendance (Zlib / glew / Boost ...@@ -61,7 +57,6 @@ Si vous voulez utiliser vos propre versions des dépendance (Zlib / glew / Boost
changer le CMAKE_PREFIX_PATH (voir ci dessous) changer le CMAKE_PREFIX_PATH (voir ci dessous)
Attention pour Boost le prefix path ne marche pas (utiliser BOOST_ROOT et d'autres si nécessaire) Attention pour Boost le prefix path ne marche pas (utiliser BOOST_ROOT et d'autres si nécessaire)
Compilation 64bits: TODO Compilation 64bits: TODO
...@@ -81,34 +76,28 @@ Install boost and Qt ...@@ -81,34 +76,28 @@ Install boost and Qt
Warning installing the binaries of Qt in a version of different compilers (VS2008/VS2010) Warning installing the binaries of Qt in a version of different compilers (VS2008/VS2010)
allows you to run but not in debug mode! allows you to run but not in debug mode!
If you use BoostPro (http://www.boostpro.com) install all versions multithreaded dll
to avoid the pb of compilation.
The safest but longest is to compile Qt yourself and Boost (good luck) The safest but longest is to compile Qt yourself and Boost (good luck)
For the "ThirdParty libs" For the "ThirdParty libs"
Run CMake (gui) Run CMake (gui)
Put the path to the root of CGoGN + / ThirdParty sources for Put the path to the root of CGoGN + / ThirdParty sources for sources
Put the path to the root of CGoGN + / ThirdParty / build to build in release Put the path to the root of CGoGN + / ThirdParty / build for build
Put the path to the root of CGoGN + / ThirdParty / buildDebug to build in debug
Under windows the two versions are needed.
The following applies to two directories:
Click on Configure Click on Configure
Choosing the right compiler (your version of Visual C + +) Choosing the right compiler (your version of Visual C + +)
Change the variables in functions that you want to compile (README.TXT for ThirdParty) Change the variables in functions that you want to compile (README.TXT for ThirdParty)
Edit CMAKE_PREFIX_PATH if necessary (see note dependencies) Edit CMAKE_PREFIX_PATH if necessary (see note dependencies)
Click again on Configure Click again on Configure
Click on Generate Click on Generate
Go on visual, load and compile the 2 solutions Go on visual, load and compile the solution in Release and Debug
Do not forgot to generate the target INSTALL (once) Do not forgot to generate the target INSTALL (once)
For CGoGN: For CGoGN:
Restart CMake Restart CMake
Put the path to the root of CGoGN for sources Put the path to the root of CGoGN for sources
Put the path to the root of CGoGN + / build (for example) to build Put the path to the root of CGoGN + / build to build
Click on Configure Click on Configure
Choosing the right compiler (your version of Visual C + +) Choosing the right compiler (your version of Visual C + +)
Change the variables as ThirdParty (and CMAKE_PREFIX_PATH if necessary) Change the variables as ThirdParty (and CMAKE_PREFIX_PATH if necessary)
...@@ -116,6 +105,10 @@ Click again on Configure ...@@ -116,6 +105,10 @@ Click again on Configure
Click on Generate Click on Generate
Go to Visual and double-click on CGoGN.sln! Go to Visual and double-click on CGoGN.sln!
If it does not found Qt fill the QT_QMAKE_EXECUTABLE variable.
If it does not found boost, fill the Boost_INCLUDE_DIR variable (C:\Boost1.55\include for example)
WARNING: Problem of linking with QGLViewer in Debug WARNING: Problem of linking with QGLViewer in Debug
If you compile an example (tuto1 & viewer) in Debug you have to modifiy If you compile an example (tuto1 & viewer) in Debug you have to modifiy
the project: Configuration properties -> Linking Editor -> Entries -> Supplementary dependencies the project: Configuration properties -> Linking Editor -> Entries -> Supplementary dependencies
......
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 2.8)
project(CGoGN_ThirdParty) project(CGoGN_ThirdParty)
SET(CGoGN_ROOT_DIR ${CMAKE_SOURCE_DIR}/..) SET(CGoGN_ROOT_DIR ${CMAKE_SOURCE_DIR}/..)
IF(WIN32) IF(WIN32)
set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies")
ENDIF(WIN32) ENDIF(WIN32)
IF (${CMAKE_CURRENT_BINARY_DIR} MATCHES "(.*)Debug") IF (${CMAKE_CURRENT_BINARY_DIR} MATCHES "(.*)Debug")
# SET(CMAKE_BUILD_TYPE Debug)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Debug/Release" FORCE) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Debug/Release" FORCE)
ELSE() ELSE()
# SET(CMAKE_BUILD_TYPE Release)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Debug/Release" FORCE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Debug/Release" FORCE)
ENDIF() ENDIF()
IF(WIN32) IF(WIN32)
set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies")
INCLUDE_DIRECTORIES(${CGoGN_ROOT_DIR}/windows_dependencies/include/) INCLUDE_DIRECTORIES(${CGoGN_ROOT_DIR}/windows_dependencies/include/)
INCLUDE_DIRECTORIES(${CGoGN_ROOT_DIR}/windows_dependencies/include/suitesparse) INCLUDE_DIRECTORIES(${CGoGN_ROOT_DIR}/windows_dependencies/include/suitesparse)
SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib)
set(CMAKE_CONFIGURATION_TYPES Release Debug)
# SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
# SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "" FORCE)
# MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES)
ELSE()
SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
ENDIF()
IF(WIN32)
ENDIF(WIN32) ENDIF(WIN32)
SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
# for shared or not shared # for shared or not shared
SET (BUILD_SHARED_LIBS OFF CACHE BOOL SET (BUILD_SHARED_LIBS OFF CACHE BOOL
...@@ -59,8 +68,4 @@ IF (WITH_ASSIMP) ...@@ -59,8 +68,4 @@ IF (WITH_ASSIMP)
ENDIF (WITH_ASSIMP) ENDIF (WITH_ASSIMP)
IF(WIN32)
SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "" FORCE)
MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES)
ENDIF(WIN32)
...@@ -116,7 +116,7 @@ IF(WIN32) ...@@ -116,7 +116,7 @@ IF(WIN32)
set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies") set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies")
set(CMAKE_CONFIGURATION_TYPES Release Debug) set(CMAKE_CONFIGURATION_TYPES Release Debug)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Only Release or Debug" FORCE) set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Only Release or Debug" FORCE)
ELSE(WIN32) ELSE()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fPIC -std=c++11") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fPIC -std=c++11")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
...@@ -125,17 +125,20 @@ ELSE(WIN32) ...@@ -125,17 +125,20 @@ ELSE(WIN32)
if (GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) if (GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-local-typedefs") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-local-typedefs")
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) endif()
endif(CMAKE_COMPILER_IS_GNUCXX) endif()
ENDIF(WIN32)
ENDIF()
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
IF(WIN32) IF(WIN32)
link_directories( ${CGoGN_ROOT_DIR}/lib/ ${Boost_LIBRARY_DIRS} ) link_directories( ${CGoGN_ROOT_DIR}/lib/${ConfigurationName} ${Boost_LIBRARY_DIRS})
ELSE (WIN32) SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/) # Release/Debug added automatically by visual
ELSE ()
link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE}) link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
ENDIF (WIN32) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
ENDIF ()
IF(NOT CMAKE_BUILD_TYPE) IF(NOT CMAKE_BUILD_TYPE)
IF (${CMAKE_CURRENT_BINARY_DIR} MATCHES "(.*)Debug|(.*)debug") IF (${CMAKE_CURRENT_BINARY_DIR} MATCHES "(.*)Debug|(.*)debug")
......
...@@ -354,7 +354,7 @@ public: ...@@ -354,7 +354,7 @@ public:
for (unsigned int i = 0; i < m_nb; ++i) for (unsigned int i = 0; i < m_nb; ++i)
{ {
const Geom::Vec3d& vd = *typedIn++; const Geom::Vec3d& vd = *typedIn++;
*typedOut++ = Geom::Vec3f(vd[0],vd[1],vd[2]); *typedOut++ = Geom::Vec3f(float(vd[0]),float(vd[1]),float(vd[2]));
// Geom::Vec3f& vf = *typedOut++; // Geom::Vec3f& vf = *typedOut++;
// vf[0]=vd[0];vf[1]=vd[1];vf[2]=vd[2]; // vf[0]=vd[0];vf[1]=vd[1];vf[2]=vd[2];
} }
......
...@@ -53,10 +53,10 @@ ShaderWallPaper::ShaderWallPaper(): ...@@ -53,10 +53,10 @@ ShaderWallPaper::ShaderWallPaper():
m_vboPos->allocate(4); m_vboPos->allocate(4);
Geom::Vec3f* ptrPos = reinterpret_cast<Geom::Vec3f*>(m_vboPos->lockPtr()); Geom::Vec3f* ptrPos = reinterpret_cast<Geom::Vec3f*>(m_vboPos->lockPtr());
ptrPos[0] = Geom::Vec3f(-1,-1, 0.9999999); ptrPos[0] = Geom::Vec3f(-1,-1, 0.9999999f);
ptrPos[1] = Geom::Vec3f( 1,-1, 0.9999999); ptrPos[1] = Geom::Vec3f( 1,-1, 0.9999999f);
ptrPos[2] = Geom::Vec3f( 1, 1, 0.9999999); ptrPos[2] = Geom::Vec3f( 1, 1, 0.9999999f);
ptrPos[3] = Geom::Vec3f(-1, 1, 0.9999999); ptrPos[3] = Geom::Vec3f(-1, 1, 0.9999999f);
m_vboPos->releasePtr(); m_vboPos->releasePtr();
......
...@@ -422,14 +422,14 @@ void Sphere::changeTopo(unsigned int parp, unsigned int mer) ...@@ -422,14 +422,14 @@ void Sphere::changeTopo(unsigned int parp, unsigned int mer)
for (unsigned int i=0; i<parAll; ++i) for (unsigned int i=0; i<parAll; ++i)
{ {
float beta = float(i+1)*M_PI/float(parAll+1); float beta = float(i+1)*float(M_PI)/float(parAll+1);
float z = -cos(beta); float z = -cos(beta);
float radius = sin(beta); float radius = sin(beta);
for (unsigned int j=0; j<merAll; ++j) for (unsigned int j=0; j<merAll; ++j)
{ {
float alpha = 2.0f*float(j)*M_PI/float(merAll); float alpha = 2.0f*float(j)*float(M_PI) / float(merAll);
float x = radius*cos(alpha); float x = radius*cos(alpha);
float y = radius*sin(alpha); float y = radius*sin(alpha);
points.push_back(Geom::Vec3f(x,y,z)); points.push_back(Geom::Vec3f(x,y,z));
...@@ -555,7 +555,7 @@ void Cone::changeTopo(unsigned int par, unsigned int mer) ...@@ -555,7 +555,7 @@ void Cone::changeTopo(unsigned int par, unsigned int mer)
for (unsigned int j=0; j<merAll; ++j) for (unsigned int j=0; j<merAll; ++j)
{ {
float alpha = 2.0f*float(j)*M_PI/float(merAll); float alpha = 2.0f*float(j)*float(M_PI) / float(merAll);
float x = radius*cos(alpha); float x = radius*cos(alpha);
float y = radius*sin(alpha); float y = radius*sin(alpha);
points.push_back(Geom::Vec3f(x,y,z)); points.push_back(Geom::Vec3f(x,y,z));
...@@ -689,7 +689,7 @@ void Cylinder::changeTopo(unsigned int parp, unsigned int mer) ...@@ -689,7 +689,7 @@ void Cylinder::changeTopo(unsigned int parp, unsigned int mer)
for (unsigned int j=0; j<merAll; ++j) for (unsigned int j=0; j<merAll; ++j)
{ {
float alpha = 2.0f*float(j)*M_PI/float(merAll); float alpha = 2.0f*float(j)*float(M_PI) / float(merAll);
float x = cos(alpha); float x = cos(alpha);
float y = sin(alpha); float y = sin(alpha);
points.push_back(Geom::Vec3f(x,y,z)); points.push_back(Geom::Vec3f(x,y,z));
......
Markdown is supported
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