]> Creatis software - clitk.git/commitdiff
More MSVC stuff
authorsrit <srit>
Mon, 8 Feb 2010 00:24:34 +0000 (00:24 +0000)
committersrit <srit>
Mon, 8 Feb 2010 00:24:34 +0000 (00:24 +0000)
CMakeLists.txt
cmake/common.cmake
common/clitkCommon.h
common/clitkPortability.h [new file with mode: 0755]
common/clitkTimer.cxx
common/clitkTimer.h
vv/CMakeLists.txt

index 84761528773e24e0d0ac6c258a8bc7b0a6a9f572..7c6adeb83450c4b0047c4472fca6f7f8d52c0adb 100644 (file)
@@ -7,7 +7,9 @@ if(COMMAND cmake_policy)
 endif(COMMAND cmake_policy)
 PROJECT(clitk)
 #=========================================================
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
+IF(CMAKE_COMPILER_IS_GNUCXX)
+  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
+ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 #=========================================================
 # Find ITK (required)
 FIND_PACKAGE(ITK)
index d7107209e4ef2dcbaaa0d11bad1dc50afcd2a0a1..d661d56ca6a198be2720f0f4a3878d3d7715e24b 100644 (file)
@@ -18,8 +18,8 @@ FOREACH(GGO_FILE ${ALL_GGO_FILES})
   #MESSAGE(${GGO_C}) 
   SET(GGO_OUTPUT  ${GGO_H} ${GGO_C})
   ADD_CUSTOM_COMMAND(OUTPUT ${GGO_OUTPUT} 
-       COMMAND gengetopt 
-       ARGS < ${GGO_FILE} --arg-struct-name=args_info_${GGO_NAME}  --file-name=${GGO_BASEFILENAME}_ggo -u --conf-parser
+       COMMAND ${CLITK_GENGETOPT}/gengetopt
+       ARGS < ${GGO_FILE} --arg-struct-name=args_info_${GGO_NAME}  --file-name=${GGO_BASEFILENAME}_ggo -u --conf-parser --include-getopt
        DEPENDS ${GGO_FILE}
        )  
  ENDFOREACH(GGO_FILE)
index 4f7a9fa8266e11955ed0a7969392577ffe713819..c4d772d97aab121258d2a8c33eaf6fa77b444952 100644 (file)
@@ -11,6 +11,9 @@
 
    -------------------------------------------------------------------*/
 
+// clitk include
+#include "clitkPortability.h"
+
 // std include
 //#include <config.h>
 //#include <cstdlib>
 
 //--------------------------------------------------------------------
 namespace clitk {
-  
-#if defined(WIN32)
-#  define lrint(x) (floor(x+(x>0) ? 0.5 : -0.5))
-#endif
-
-#ifndef M_PI
-#  define M_PI 3.141592653589793238462643
-#endif
-
 
   typedef unsigned char uchar;
   typedef unsigned short ushort;
diff --git a/common/clitkPortability.h b/common/clitkPortability.h
new file mode 100755 (executable)
index 0000000..da1b7ba
--- /dev/null
@@ -0,0 +1,10 @@
+#ifndef CLITKPORTABILITY_H
+#define CLITKPORTABILITY_H
+  
+#if defined(WIN32)
+#  define rint(x)  floor(x+0.5)
+#  define lrint(x) (long)rint(x) 
+#  define _USE_MATH_DEFINES
+#endif
+
+#endif /* end #define CLITKPORTABILITY_H */
index 85b65fde02689c9725a4b75d8982c79a51a29bdb..6f39dc0e7ee335769bcea697c681fc130685baed 100644 (file)
 /// Constructs the class 
 clitk::Timer::Timer() { 
   Reset(); 
+#if defined(WIN32)
+  QueryPerformanceFrequency((LARGE_INTEGER*)&mFrequency);
+#endif
 }
 //====================================================================
 
 //====================================================================
 void clitk::Timer::Start() {
+#if defined(UNIX)
   getrusage(RUSAGE_SELF, &mBegin);
+#elif defined(WIN32)
+  QueryPerformanceCounter((LARGE_INTEGER*)&mBegin);
+#endif
   mNumberOfCall++;
 }
 //====================================================================
 
 //====================================================================
 void clitk::Timer::Stop(bool accumulate) {
+#if defined(UNIX)
   getrusage(RUSAGE_SELF, &mEnd);
   if (accumulate) {
     mElapsed += (mEnd.ru_utime.tv_usec - mBegin.ru_utime.tv_usec)+
       (mEnd.ru_utime.tv_sec - mBegin.ru_utime.tv_sec)*1000000;
   }
+#elif defined(WIN32)
+  QueryPerformanceCounter((LARGE_INTEGER*)&mEnd);
+  if (accumulate) {
+    mElapsed += ((mEnd-mBegin)*1000000)/(long double)mFrequency;
+  }
+#endif
   else {
     mNumberOfCall--;
   }
index 5f651c341f265cc23afcfda806b6332e14b54b90..87edf5b9f0c93d2f2c65c582f111edf44e16e650 100644 (file)
 
    ===================================================================*/
 
-// #ifdef UNIX
-
 #include "clitkCommon.h"
 #include <ctime> 
-#include <sys/time.h>
-#include <sys/resource.h>
+#if defined(UNIX)
+#  include <sys/time.h>
+#  include <sys/resource.h>
+#elif defined(WIN32)
+#  include <windows.h>
+#endif
 #include <iostream>
 #include <utility>
 
@@ -41,8 +43,14 @@ namespace clitk {
     //====================================================================
     
   protected:
+#if defined(UNIX)
     rusage mBegin; 
     rusage mEnd;
+#elif defined(WIN32)
+    unsigned __int64 mBegin;
+    unsigned __int64 mEnd;
+    unsigned __int64 mFrequency;
+#endif
     long double mElapsed;
     long int mNumberOfCall;
   };
index 1b76974e16a6660ee5befd500b3d127766067724..266d4575c6cf387338712cd76f5979958b710736 100644 (file)
@@ -1,13 +1,6 @@
 cmake_minimum_required(VERSION 2.4)
 #=========================================================
 INCLUDE(${PROJECT_SOURCE_DIR}/cmake/common.cmake)
-#=========================================================
-
-#Set a reasonable build mode default if the user hasn't set any
-if (NOT CMAKE_BUILD_TYPE)
-  set(CMAKE_BUILD_TYPE RelWithDebInfo)
-endif (NOT CMAKE_BUILD_TYPE)
-
 #=========================================================
 # Find ITK (required)
 FIND_PACKAGE(ITK)
@@ -237,45 +230,46 @@ ENDIF (CLITK_VV_USE_BDCM)
 #=========================================================
 # Installation file
 INSTALL(TARGETS vv vv
-  RUNTIME DESTINATION bin CONFIGURATIONS relwithdebinfo
-  LIBRARY DESTINATION lib CONFIGURATIONS relwithdebinfo
-  ARCHIVE DESTINATION lib CONFIGURATIONS relwithdebinfo)
+  RUNTIME DESTINATION bin CONFIGURATIONS ${CMAKE_BUILD_TYPE}
+  LIBRARY DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE}
+  ARCHIVE DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE})
 INSTALL(FILES ${vv_HDRS} DESTINATION include)
 
 IF(WIN32)
-  INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ducky.png DESTINATION bin)
-  INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}relwithdebinfo/vv.exe DESTINATION bin)
+  INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
+  INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
   INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
   INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkCommon.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtksys.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkRendering.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGraphics.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkImaging.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkFiltering.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkIO.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/verdict.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTK.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTKWidgetPlugin.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkDICOMParser.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexoIIc.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexpat.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkmetaio.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkftgl.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkfreetype.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkHybrid.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkInfovis.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkjpeg.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtklibxml2.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkNetCDF.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkpng.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtktiff.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkViews.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkVolumeRendering.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkWidgets.dll DESTINATION bin)
-  INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkzlib.dll DESTINATION bin)
+  INSTALL (FILES ${ITK_DIR}/bin/${CMAKE_BUILD_TYPE}/itkCommon.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkCommon.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtksys.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkRendering.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGraphics.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkImaging.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkFiltering.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkIO.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkverdict.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTK.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTKWidgetPlugin.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkDICOMParser.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexoIIc.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexpat.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkmetaio.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkftgl.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkfreetype.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkHybrid.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkInfovis.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkjpeg.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtklibxml2.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkNetCDF.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkpng.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtktiff.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkViews.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkVolumeRendering.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkWidgets.dll DESTINATION bin)
+  INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkzlib.dll DESTINATION bin)
 ENDIF(WIN32)
 
 IF(UNIX)
@@ -300,7 +294,7 @@ IF(WIN32 AND NOT UNIX)
   # There is a bug in NSI that does not handle full unix paths properly. Make
   # sure there is at least one set of four (4) backlasshes.
   SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
-  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/relwithdebinfo\\\\vv.exe")
+  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
   SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")