Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1165 - in trunk: . CMake Core/Util StandAlone


Chronological Thread 
  • From: abe@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1165 - in trunk: . CMake Core/Util StandAlone
  • Date: Fri, 11 Aug 2006 21:08:34 -0600 (MDT)

Author: abe
Date: Fri Aug 11 21:08:31 2006
New Revision: 1165

Added:
   trunk/CMake/About.cmake
   trunk/CMake/BuildType.cmake
   trunk/CMake/CheckSSE.cmake
   trunk/CMake/ConfigApple.cmake
   trunk/CMake/ConfigIA64.cmake
   trunk/CMake/ConfigIccVersion.cmake
   trunk/CMake/ConfigIrix.cmake
   trunk/CMake/ConfigX86_64.cmake
   trunk/CMake/ConfigureAbout.cmake.CMakeTemplate
   trunk/CMake/FindFox.cmake
   trunk/CMake/FindTeem.cmake
   trunk/CMake/FindX11andGL.cmake
   trunk/CMake/Macros.cmake
   trunk/Core/Util/About.h
Modified:
   trunk/CMakeLists.txt
   trunk/StandAlone/manta.cc
Log:

Modified root directory CMakeLists.txt file. Moved individual tests,
compiler options, and other platform specific logic into individual
files. Added "About" library generated by cmake which contains a
function that returns revision and build type information.

A    CMake/FindX11andGL.cmake
A    CMake/BuildType.cmake
A    CMake/ConfigIrix.cmake
A    CMake/ConfigX86_64.cmake
A    CMake/Macros.cmake
A    CMake/ConfigApple.cmake
A    CMake/ConfigureAbout.cmake.CMakeTemplate
A    CMake/CheckSSE.cmake
A    CMake/ConfigIA64.cmake
A    CMake/About.cmake
A    CMake/ConfigIccVersion.cmake
A    CMake/FindTeem.cmake
A    CMake/FindFox.cmake
A    Core/Util/About.h
M    StandAlone/manta.cc
M    CMakeLists.txt


Added: trunk/CMake/About.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/About.cmake     Fri Aug 11 21:08:31 2006
@@ -0,0 +1,41 @@
+
+###############################################################################
+# This script saves svn revision info in a source file which may be used
+# by the application to determine which revision has been compiled.
+#
+# The script creates the following advanced variable:
+# ${ABOUT_SRC} -- Location of the source file containing the text.
+#
+# -- Abe Stephens
+###############################################################################
+
+SET(ABOUT_SRC ${CMAKE_BINARY_DIR}/src/About.cc)
+
+# Configure the cmake script which will execute svn.
+CONFIGURE_FILE(
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigureAbout.cmake.CMakeTemplate
+  ${CMAKE_BINARY_DIR}/CMake/src/ConfigureAbout.cmake
+  @ONLY
+   )
+
+# This custom command executes a cmake script which runs svn and parses 
output.
+ADD_CUSTOM_COMMAND(
+  OUTPUT  ${ABOUT_SRC}
+  DEPENDS ${CMAKE_SOURCE_DIR}/.svn/entries 
${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigureAbout.cmake.CMakeTemplate
+  COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_BINARY_DIR}/CMake/src/ConfigureAbout.cmake
+  )  
+
+# Add a custom target to run the whole thing whenever .svn/entries changes.
+ADD_CUSTOM_TARGET(
+  SvnInfo
+  # DEPENDS Must match custom command OUTPUT.
+  ALL
+  DEPENDS ${ABOUT_SRC} 
+  )
+  
+# Add a static library.
+ADD_LIBRARY(About STATIC
+  ${ABOUT_SRC}
+  )
+ADD_DEPENDENCIES(About SvnInfo)
+

Added: trunk/CMake/BuildType.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/BuildType.cmake Fri Aug 11 21:08:31 2006
@@ -0,0 +1,23 @@
+
+# Default to building release.  I can't tell you how many times folks
+# cry because Manta suddenly got slower.  This will hopefully
+# alieviate it some.
+
+IF(NOT CMAKE_BUILD_TYPE)
+  SET(CMAKE_BUILD_TYPE "Release" CACHE STRING
+      "Choose the type of build, options are: Debug Release RelWithDebInfo 
MinSizeRel."
+      FORCE)
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+###############################################################################
+# Set SCI_ASSERTION_LEVEL based on build type
+
+IF(CMAKE_BUILD_TYPE MATCHES "Release") 
+  SET(SCI_ASSERTION_LEVEL 0 CACHE INT "Level for assertions [0-3]" FORCE)
+ENDIF(CMAKE_BUILD_TYPE MATCHES "Release")
+
+IF(CMAKE_BUILD_TYPE MATCHES "Debug") 
+  IF (SCI_ASSERTION_LEVEL MATCHES 0)
+     SET(SCI_ASSERTION_LEVEL 3 CACHE INT "Level for assertions [0-3]" FORCE)
+  ENDIF (SCI_ASSERTION_LEVEL MATCHES 0)
+ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug")

Added: trunk/CMake/CheckSSE.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/CheckSSE.cmake  Fri Aug 11 21:08:31 2006
@@ -0,0 +1,36 @@
+
+##################################################################
+# Check to see if the system supports SSE2.
+FILE(WRITE ${CMAKE_BINARY_DIR}/test/test.c "#include <emmintrin.h>\nstatic 
__m128 foo;\n\n")
+EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
+  ARGS -c ${CMAKE_CXX_FLAGS} -o /dev/null ${CMAKE_BINARY_DIR}/test/test.c
+  OUTPUT_VARIABLE OUTPUT
+  RETURN_VALUE NOT_MANTA_SSE )
+
+IF(NOT NOT_MANTA_SSE)
+  SET(MANTA_SSE TRUE CACHE BOOL "Compile SSE code.")
+
+  # Check to see if the system is using gcc sse intrinsics.
+  FILE(WRITE ${CMAKE_BINARY_DIR}/test/test.c "#include <emmintrin.h>\nstatic 
__m128i foo = _mm_set1_epi64x( (long long)1 );\n\n")
+  EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
+    ARGS -c ${CMAKE_CXX_FLAGS} -o /dev/null ${CMAKE_BINARY_DIR}/test/test.c
+    OUTPUT_VARIABLE OUTPUT
+    RETURN_VALUE NOT_MANTA_SSE_GCC )  
+  
+  IF(NOT NOT_MANTA_SSE_GCC)
+    SET(MANTA_SSE_GCC TRUE CACHE BOOL "Found *epi64x intrinsics")
+  ELSE(NOT NOT_MANTA_SSE_GCC)
+    SET(MANTA_SSE_GCC FALSE CACHE BOOL "Couldn't find *epi64x intrinsics" 
FORCE)
+  ENDIF(NOT NOT_MANTA_SSE_GCC)
+
+ELSE(NOT NOT_MANTA_SSE)
+  IF(MANTA_SSE)
+    # We tried to turn it on and it isn't available
+    MESSAGE("Couldn't compile with sse.  Try adding -msse -msse2 to 
CMAKE_CXX_FLAGS compiler flags.")
+    MESSAGE("compiler: " ${CMAKE_CXX_COMPILER})
+    MESSAGE("compiler flags: " ${CMAKE_CXX_FLAGS})
+    MESSAGE(${OUTPUT})
+  ENDIF(MANTA_SSE)
+  SET(MANTA_SSE FALSE CACHE BOOL "Couldn't compile SSE code." FORCE)
+  SET(MANTA_SSE_GCC FALSE CACHE BOOL "Couldn't find *epi64x intrinsics." 
FORCE)
+ENDIF(NOT NOT_MANTA_SSE)
\ No newline at end of file

Added: trunk/CMake/ConfigApple.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigApple.cmake       Fri Aug 11 21:08:31 2006
@@ -0,0 +1,25 @@
+
+
+######################################################################
+# Check for Mac OS
+IF (APPLE)
+
+  # Obtain output of /usr/bin/macine
+  EXEC_PROGRAM("/usr/bin/machine" OUTPUT_VARIABLE APPLE_MACHINE)
+
+  # G4 Powerbook.
+  IF (${APPLE_MACHINE} MATCHES "ppc7450")
+     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE " -O3 -g -fgcse-sm 
-funroll-loops -fstrict-aliasing -fsched-interblock -falign-loops=16 
-falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 
-falign-loops-max-skip=15 -ffast-math -freorder-blocks -mpowerpc-gpopt 
-force_cpusubtype_ALL -mtune=G4 -mcpu=G4 -faltivec -mabi=altivec 
-mpowerpc-gfxopt" STRING "G4 Optimized Flags")
+  ENDIF (${APPLE_MACHINE} MATCHES "ppc7450")
+
+  # G5 Workstation.
+  IF (${APPLE_MACHINE} MATCHES "ppc970")
+     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE " -O3 -g -fgcse-sm 
-funroll-loops -fstrict-aliasing -fsched-interblock -falign-loops=16 
-falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 
-falign-loops-max-skip=15 -ffast-math -freorder-blocks -mpowerpc-gpopt 
-force_cpusubtype_ALL -mtune=G5 -mcpu=G5 -mpowerpc64 -faltivec -mabi=altivec 
-mpowerpc-gfxopt" STRING "G5 Optimized Flags")
+  ENDIF(${APPLE_MACHINE} MATCHES "ppc970")
+
+  # Core Duo.  
+  IF (${APPLE_MACHINE} MATCHES "i486") # ???
+     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE " -O3 -fgcse-sm -funroll-loops 
-fstrict-aliasing -fsched-interblock -ffast-math -freorder-blocks 
-fpermissive -march=prescott -mtune=prescott -msse -msse2 -msse3 
-mfpmath=sse" STRING "Core Duo Optimized Flags")
+  ENDIF (${APPLE_MACHINE} MATCHES "i486")
+
+ENDIF (APPLE)
\ No newline at end of file

Added: trunk/CMake/ConfigIA64.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigIA64.cmake        Fri Aug 11 21:08:31 2006
@@ -0,0 +1,28 @@
+
+# Assume that if we are running on an Itanium (ia64), then it is an
+# SGI linux system
+IF   (CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
+
+  SET(SGI_LINUX TRUE)
+
+  # Warn if the compiler is not icc
+  IF   (CMAKE_C_COMPILER MATCHES "icc$")
+    FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-tpp2 -O3 -g " CACHE STRING 
"Release  Flags" FORCE)
+    FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug Flags" 
FORCE)
+  ELSE (CMAKE_C_COMPILER MATCHES "icc$")
+         FIRST_TIME_MESSAGE("Intel Compilers recommended on ia64. setenv CC 
icc before running cmake.")
+         FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math 
-funroll-loops -g" CACHE STRING "Release Flags" FORCE)
+         FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
+  ENDIF(CMAKE_C_COMPILER MATCHES "icc$")
+
+  IF   (CMAKE_CXX_COMPILER MATCHES "icpc$")
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-tpp2 -O3 -g" CACHE STRING 
"Release Flags" FORCE)
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
+  ELSE (CMAKE_CXX_COMPILER MATCHES "icpc$")
+         FIRST_TIME_MESSAGE("Intel Compilers recommended on ia64.  setenv 
CXX icpc before running cmake.")
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math 
-funroll-loops -g" CACHE STRING "Release Flags" FORCE)
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
+  ENDIF(CMAKE_CXX_COMPILER MATCHES "icpc$")
+
+ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
+

Added: trunk/CMake/ConfigIccVersion.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigIccVersion.cmake  Fri Aug 11 21:08:31 2006
@@ -0,0 +1,15 @@
+
+# Determine INTEL_COMPILER_VERSION
+IF   (CMAKE_CXX_COMPILER MATCHES "icpc$")
+
+  EXEC_PROGRAM(${CMAKE_CXX_COMPILER} 
+               ARGS --version 
+               OUTPUT_VARIABLE TEMP)
+
+  STRING(REGEX MATCH "([0-9\\.]+)" 
+                      INTEL_COMPILER_VERSION
+                      ${TEMP})
+
+  MARK_AS_ADVANCED(INTEL_COMPILER_VERSION)
+
+ENDIF(CMAKE_CXX_COMPILER MATCHES "icpc$")
\ No newline at end of file

Added: trunk/CMake/ConfigIrix.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigIrix.cmake        Fri Aug 11 21:08:31 2006
@@ -0,0 +1,27 @@
+######################################################################
+# Check for SGI Irix
+IF(CMAKE_SYSTEM MATCHES IRIX)
+
+  # For now force sproc on IRIX systems.
+  #  MESSAGE("Forcing Irix Threads")
+#   SET(CMAKE_USE_SPROC_INIT 1)
+#   SET(CMAKE_USE_PTHREADS_INIT 0)
+#   SET(CMAKE_THREAD_LIBS_INIT -lfetchop)
+  SET(CMAKE_USE_SPROC_INIT 0)
+  SET(CMAKE_USE_PTHREADS_INIT 1)
+  SET(CMAKE_THREAD_LIBS_INIT -lpthread -lfetchop)
+
+  # Check for CC compiler and add -LANG:std to it
+  IF(CMAKE_CXX_COMPILER MATCHES "CC")
+    FIRST_TIME_SET(CMAKE_CXX_FLAGS "-64 -LANG:std" STRING "Standard CXX 
flags")
+    FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -OPT:IEEE_arithmetic=3" 
STRING "Optimized Flags")
+  ENDIF(CMAKE_CXX_COMPILER MATCHES "CC")
+
+  IF(CMAKE_C_COMPILER MATCHES "cc")
+    FIRST_TIME_SET(CMAKE_C_FLAGS "-64" STRING "Standard CC flags")
+    FIRST_TIME_SET(CMAKE_SHARED_LINKER_FLAGS "-64" STRING "Standard Linker 
flags")
+  ENDIF(CMAKE_C_COMPILER MATCHES "cc")
+
+ELSE(CMAKE_SYSTEM MATCHES IRIX)
+#  MESSAGE("IRIX not found")
+ENDIF(CMAKE_SYSTEM MATCHES IRIX)

Added: trunk/CMake/ConfigX86_64.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigX86_64.cmake      Fri Aug 11 21:08:31 2006
@@ -0,0 +1,19 @@
+######################################################################
+# Check for EMT64
+IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+
+  ####################################################################
+  # Check for Intel Compilers.
+  IF   (CMAKE_C_COMPILER MATCHES "icc$")
+    FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-tpp7 -O3 -g" CACHE STRING 
"Release  Flags" FORCE)
+    FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug Flags" 
FORCE)
+  ENDIF(CMAKE_C_COMPILER MATCHES "icc$")
+
+  IF   (CMAKE_CXX_COMPILER MATCHES "icpc$")
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-tpp7 -O3 -g" CACHE STRING 
"Release Flags" FORCE)
+         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)    
+  ENDIF(CMAKE_CXX_COMPILER MATCHES "icpc$")
+
+ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+
+

Added: trunk/CMake/ConfigureAbout.cmake.CMakeTemplate
==============================================================================
--- (empty file)
+++ trunk/CMake/ConfigureAbout.cmake.CMakeTemplate      Fri Aug 11 21:08:31 
2006
@@ -0,0 +1,26 @@
+
+# Note this file uses (at)VAR(at) for all variables replaced during 
+# CONFIGURE_FILE.
+
+
+# Execute svn status.
+MESSAGE( STATUS "Executing: svn info " @CMAKE_SOURCE_DIR@ )
+EXEC_PROGRAM(svn ARGS info @CMAKE_SOURCE_DIR@
+                 OUTPUT_VARIABLE SVN_OUTPUT )
+
+# Replace newlines with escape sequence.
+STRING(REGEX REPLACE "\n" "\\\\n" SVN_OUTPUT ${SVN_OUTPUT})
+
+# Set the about string.
+SET(ABOUT_STRING ${SVN_OUTPUT} "\\n\\nBuild Type: " @CMAKE_BUILD_TYPE@)
+
+SET(CMAKE_BACKWARDS_COMPATIBILITY 2.4)
+
+# Configure the source file.
+MESSAGE( STATUS "Configuring " @ABOUT_SRC@ )
+CONFIGURE_FILE(
+  @Manta_SOURCE_DIR@/include/About.cc.CMakeTemplate
+  @ABOUT_SRC@
+)
+
+

Added: trunk/CMake/FindFox.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/FindFox.cmake   Fri Aug 11 21:08:31 2006
@@ -0,0 +1,103 @@
+###############################################################################
+# This script searches for the Fox Toolkit and populates variables:
+# -- Abe Stephens.
+#
+# FOX_INCLUDE     -- used by INCLUDE_DIRECTORIES(${FOX_INCLUDE})
+# FOX_TARGET_LINK -- used by TARGET_LINK_LIBRARIES(${FOX_TARGET_LINK})
+#
+# The script search for fox under:
+#
+# /usr/lib
+# /usr/local/lib
+# ${FOX_INSTALL_PATH}/lib (and) ${FOX_INSTALL_PATH}/include
+# ${THIRD_PARTY_LIBRARY_PATH} (and) ${THIRD_PARTY_INCLUDE_PATH} 
+#
+###############################################################################
+
+###############################################################################
+# FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  FOX  
FO
+
+# Look for library here before you look in Thirdparty path
+SET(FOX_INSTALL_PATH "" CACHE PATH "Default search path for Fox install")
+
+# Determine the version of fox to use. Case sensitive
+SET(FOX_VERSION  FOX-1.5 CACHE STRING "Fox Library version string")
+
+# Search for the actual fox library.
+FIND_LIBRARY( FOUND_FOX_LIB     NAMES ${FOX_VERSION}
+                                PATHS ${FOX_INSTALL_PATH}/lib 
${THIRD_PARTY_LIBRARY_PATH} /usr/local/lib /usr/lib
+                                DOC "Fox library path" )
+
+# Seach for the fox include directory.
+STRING(TOLOWER ${FOX_VERSION} FOX_VERSION_LOWERCASE)
+FIND_PATH   ( FOUND_FOX_INCLUDE fx.h 
${FOX_INSTALL_PATH}/include/${FOX_VERSION_LOWERCASE} 
${THIRD_PARTY_INCLUDE_PATH}/${FOX_VERSION_LOWERCASE} /usr/local/include 
/usr/include
+              DOC "Fox Include path" )   
+
+
+# If both were found, include fox interface code.
+IF(FOUND_FOX_LIB AND FOUND_FOX_INCLUDE)
+  
+  # Determine other libraries to link with
+  SET(FOX_X11_LIBRARIES m png)
+
+  # Look for tiff and jpeg
+  FIND_LIBRARY( FOUND_TIFF_LIB NAMES tiff PATHS /usr/lib /usr/local/lib DOC 
"Only required if Fox linked w/ tiff")
+  IF(FOUND_TIFF_LIB)
+    SET(FOX_X11_LIBRARIES ${FOX_X11_LIBRARIES} tiff)
+  ENDIF(FOUND_TIFF_LIB)
+
+  FIND_LIBRARY( FOUND_JPEG_LIB NAMES jpeg PATHS /usr/lib /usr/local/lib DOC 
"Only required if Fox linked w/ jpeg")
+  IF(FOUND_JPEG_LIB)
+    SET(FOX_X11_LIBRARIES ${FOX_X11_LIBRARIES} jpeg)
+  ENDIF(FOUND_JPEG_LIB)
+
+  # Append Xcursor if it is available.
+  FIND_LIBRARY( FOUND_XCURSOR NAMES Xcursor PATHS /usr/X11R6/lib DOC "Only 
required if Fox linked w/ Xcursor")    
+  IF(FOUND_XCURSOR)
+    SET(FOX_X11_LIBRARIES ${FOX_X11_LIBRARIES}
+                          Xcursor)
+  ENDIF(FOUND_XCURSOR)

+  # Append Xrandr if it is available.
+  FIND_LIBRARY( FOUND_XRANDR NAMES Xrandr PATHS /usr/X11R6/lib DOC "Only 
required if Fox linked w/ Xrandr")    
+  IF(FOUND_XRANDR)
+    SET(FOX_X11_LIBRARIES ${FOX_X11_LIBRARIES}
+                          Xrandr)
+  ENDIF(FOUND_XRANDR)
+
+  
+  
#############################################################################
+  # Set the FOX_LIBS Variable.
+  SET(FOX_TARGET_LINK
+
+    ${FOUND_FOX_LIB}
+    ${CMAKE_THREAD_LIBS_INIT}
+    ${OPENGL_LIBRARIES} 
+    ${X11_LIBRARIES} 
+    ${FOX_X11_LIBRARIES}
+
+    # Always include pthreads.
+    pthread
+    )   
+  
+  # Set the FOX_INCLUDE Variable.
+  SET(FOX_INCLUDE ${FOUND_FOX_INCLUDE})
+
+  # Mark all as advanced.
+  MARK_AS_ADVANCED(
+    FOX_INSTALL_PATH
+    FOUND_FOX_INCLUDE
+    FOUND_FOX_LIB
+    FOUND_JPEG_LIB
+    FOUND_TIFF_LIB
+    FOUND_XCURSOR
+    FOUND_XRANDR
+    FOX_STATIC
+    FOX_VERSION
+  )    
+
+ELSE(FOUND_FOX_LIB AND FOUND_FOX_INCLUDE)
+  MESSAGE("Fox Toolkit not found.")
+
+ENDIF(FOUND_FOX_LIB AND FOUND_FOX_INCLUDE)
+

Added: trunk/CMake/FindTeem.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/FindTeem.cmake  Fri Aug 11 21:08:31 2006
@@ -0,0 +1,14 @@
+
+##################################################################
+# Look for Teem http://teem.sourceforge.net/
+
+# Look for library here before you look in Thirdparty path
+SET(TEEM_INSTALL_PATH "" CACHE PATH "Default search path for Teem install")
+
+FIND_LIBRARY( FOUND_TEEM_LIB     NAMES teem
+                                 PATHS ${TEEM_INSTALL_PATH}/lib 
${THIRD_PARTY_LIBRARY_PATH} /usr/local/lib /usr/lib
+                                 DOC "Teem library (This is a path.)" )
+FIND_PATH   ( FOUND_TEEM_INCLUDE teem/nrrd.h ${TEEM_INSTALL_PATH}/include 
${THIRD_PARTY_INCLUDE_PATH} /usr/local/include /usr/include
+                                 DOC "Teem Include (This is a path.)" )
+
+MARK_AS_ADVANCED(FOUND_TEEM_LIB FOUND_TEEM_INCLUDE)

Added: trunk/CMake/FindX11andGL.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/FindX11andGL.cmake      Fri Aug 11 21:08:31 2006
@@ -0,0 +1,32 @@
+###############################################################################
+#
+# This script searches for X11 and OpenGL mostly using the standard CMake
+# find scripts. It sets the following variables:
+#
+# OPENGL_INCLUDE     -- Location of GL/ subdirectory.
+# OPENGL_TARGET_LINK -- Variable for TARGET_LINK_LIBRARY command.
+#
+###############################################################################
+
+
+###############################################################################
+# X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  X11  
X1
+
+IF (APPLE)
+  SET (OPENGL_INCLUDE_DIR               /usr/X11R6/include)
+  SET (OPENGL_gl_LIBRARY                /usr/X11R6/lib/libGL.dylib)
+  SET (OPENGL_glu_LIBRARY               /usr/X11R6/lib/libGLU.dylib)
+ENDIF (APPLE)
+
+IF (CYGWIN)
+  SET (OPENGL_INCLUDE_DIR               /usr/X11R6/include)
+  SET (OPENGL_gl_LIBRARY                /usr/X11R6/lib/libGL.dll)
+  SET (OPENGL_glu_LIBRARY               /usr/X11R6/lib/libGLU.dll)
+ENDIF (CYGWIN)
+
+INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
+INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
+INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
+
+SET(OPENGL_INCLUDE        ${OPENGL_INCLUDE_DIR})
+SET(OPENGL_LINK_LIBRARIES ${OPENGL_LIBRARIES})

Added: trunk/CMake/Macros.cmake
==============================================================================
--- (empty file)
+++ trunk/CMake/Macros.cmake    Fri Aug 11 21:08:31 2006
@@ -0,0 +1,43 @@
+
+
+#################################################################
+###   ADD_CXX_FLAGS(flags)                                    ###
+### flags will be added to CMAKE_CXX_FLAGS, but only once     ###
+### This only works for CMake 2.0 and above.                  ###
+#################################################################
+MACRO(FORCE_ADD_CXX_FLAGS)
+  FOREACH(arg ${ARGN})
+    SET(TMP ${arg}) #elsewise the Seperate command doesn't work)
+    SEPARATE_ARGUMENTS(TMP)
+    FOREACH(option ${TMP})
+      STRING(REGEX REPLACE " ${option}" "" CMAKE_CXX_FLAGS
+        "${CMAKE_CXX_FLAGS}")
+      STRING(REGEX REPLACE "${option}" "" CMAKE_CXX_FLAGS
+        "${CMAKE_CXX_FLAGS}")
+      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${option}" CACHE STRING
+        "common C++ build flags" FORCE)
+    ENDFOREACH(option ${TMP})
+  ENDFOREACH(arg ${ARGN})
+ENDMACRO(FORCE_ADD_CXX_FLAGS)
+
+# This MACRO is designed to set variables to default values only on
+# the first configure.  Subsequent configures will produce no ops.
+MACRO(FIRST_TIME_SET VARIABLE VALUE TYPE COMMENT)
+  IF(NOT PASSED_FIRST_CONFIGURE)
+    SET(${VARIABLE} ${VALUE} CACHE ${TYPE} ${COMMENT} FORCE)
+  ENDIF(NOT PASSED_FIRST_CONFIGURE)
+ENDMACRO(FIRST_TIME_SET)
+
+MACRO(FIRST_TIME_MESSAGE STR )
+  IF(NOT PASSED_FIRST_CONFIGURE)
+    MESSAGE(${STR})
+  ENDIF(NOT PASSED_FIRST_CONFIGURE)  
+ENDMACRO(FIRST_TIME_MESSAGE)
+
+MACRO(SUBDIRS_IF VARIABLE DESCRIPTION DIRS)
+  # Add the cached variable.
+  SET(${VARIABLE} 0 CACHE BOOL ${DESCRIPTION})
+  IF(${VARIABLE})
+    SUBDIRS(${DIRS})
+  ENDIF(${VARIABLE})
+ENDMACRO(SUBDIRS_IF)
\ No newline at end of file

Modified: trunk/CMakeLists.txt
==============================================================================
--- trunk/CMakeLists.txt        (original)
+++ trunk/CMakeLists.txt        Fri Aug 11 21:08:31 2006
@@ -1,6 +1,9 @@
-# Hello, and welcome the Manta CMake build system.  Here you can find
-# many system dependent actions.  We will try and keep all that in this
-# file rather than in subdirectories.
+
+###############################################################################
+###############################################################################
+# Manta root CMakeLists.txt file.
+###############################################################################
+###############################################################################
 
 # # You need at least CMake version 2.0
 # IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.0)
@@ -13,216 +16,33 @@
 SET(CMAKE_VERBOSE_MAKEFILE ON)
 
 ############################################################
-# Set default search directory prefixes for third party libraries like
-# fox and teem.
+# Set default search directory prefixes for third party libraries.
 
 SET(THIRD_PARTY_LIBRARY_PATH "" CACHE PATH "Default search path for 
third-party libraries")
 SET(THIRD_PARTY_INCLUDE_PATH "" CACHE PATH "Default search path for 
third-party headers")
 
-# Default to building release.  I can't tell you how many times folks
-# cry because Manta suddenly got slower.  This will hopefully
-# alieviate it some.
-
-IF(NOT CMAKE_BUILD_TYPE)
-  SET(CMAKE_BUILD_TYPE "Release" CACHE STRING
-      "Choose the type of build, options are: Debug Release RelWithDebInfo 
MinSizeRel."
-      FORCE)
-ENDIF(NOT CMAKE_BUILD_TYPE)
-
-IF (APPLE)
-  SET (OPENGL_INCLUDE_DIR               /usr/X11R6/include)
-  SET (OPENGL_gl_LIBRARY                /usr/X11R6/lib/libGL.dylib)
-  SET (OPENGL_glu_LIBRARY               /usr/X11R6/lib/libGLU.dylib)
-ENDIF (APPLE)
-
-IF (CYGWIN)
-#  MESSAGE("Using Cygwin/X11 OpenGL")
-  SET (OPENGL_INCLUDE_DIR               /usr/X11R6/include)
-  SET (OPENGL_gl_LIBRARY                /usr/X11R6/lib/libGL.dll)
-  SET (OPENGL_glu_LIBRARY               /usr/X11R6/lib/libGLU.dll)
-ENDIF (CYGWIN)
-
-INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
-INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
-INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
-
-#################################################################
-###   ADD_CXX_FLAGS(flags)                                    ###
-### flags will be added to CMAKE_CXX_FLAGS, but only once     ###
-### This only works for CMake 2.0 and above.                  ###
-#################################################################
-MACRO(FORCE_ADD_CXX_FLAGS)
-  FOREACH(arg ${ARGN})
-    SET(TMP ${arg}) #elsewise the Seperate command doesn't work)
-    SEPARATE_ARGUMENTS(TMP)
-    FOREACH(option ${TMP})
-      STRING(REGEX REPLACE " ${option}" "" CMAKE_CXX_FLAGS
-        "${CMAKE_CXX_FLAGS}")
-      STRING(REGEX REPLACE "${option}" "" CMAKE_CXX_FLAGS
-        "${CMAKE_CXX_FLAGS}")
-      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${option}" CACHE STRING
-        "common C++ build flags" FORCE)
-    ENDFOREACH(option ${TMP})
-  ENDFOREACH(arg ${ARGN})
-ENDMACRO(FORCE_ADD_CXX_FLAGS)
-
-
-
-# This MACRO is designed to set variables to default values only on
-# the first configure.  Subsequent configures will produce no ops.
-MACRO(FIRST_TIME_SET VARIABLE VALUE TYPE COMMENT)
-  IF(NOT PASSED_FIRST_CONFIGURE)
-    SET(${VARIABLE} ${VALUE} CACHE ${TYPE} ${COMMENT} FORCE)
-  ENDIF(NOT PASSED_FIRST_CONFIGURE)
-ENDMACRO(FIRST_TIME_SET)
-
-MACRO(FIRST_TIME_MESSAGE STR )
-  IF(NOT PASSED_FIRST_CONFIGURE)
-    MESSAGE(${STR})
-  ENDIF(NOT PASSED_FIRST_CONFIGURE)  
-ENDMACRO(FIRST_TIME_MESSAGE)
-
-######################################################################
-# Check for SGI Linux.
-
-# Assume that if we are running on an Itanium (ia64), then it is an
-# SGI linux system
-IF   (CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
-
-  SET(SGI_LINUX TRUE)
-
-  # Warn if the compiler is not icc
-  IF   (CMAKE_C_COMPILER MATCHES "icc$")
-    FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-tpp2 -O3 -g 
-DSCI_ASSERTION_LEVEL=0" CACHE STRING "Release  Flags" FORCE)
-    FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug Flags" 
FORCE)
-  ELSE (CMAKE_C_COMPILER MATCHES "icc$")
-         FIRST_TIME_MESSAGE("Intel Compilers recommended on ia64. setenv CC 
icc before running cmake.")
-         FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math 
-funroll-loops -g" CACHE STRING "Release Flags" FORCE)
-         FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
-  ENDIF(CMAKE_C_COMPILER MATCHES "icc$")
-
-  IF   (CMAKE_CXX_COMPILER MATCHES "icpc$")
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-tpp2 -O3 -g 
-DSCI_ASSERTION_LEVEL=0" CACHE STRING "Release Flags" FORCE)
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
-  ELSE (CMAKE_CXX_COMPILER MATCHES "icpc$")
-         FIRST_TIME_MESSAGE("Intel Compilers recommended on ia64.  setenv 
CXX icpc before running cmake.")
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math 
-funroll-loops -g" CACHE STRING "Release Flags" FORCE)
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
-  ENDIF(CMAKE_CXX_COMPILER MATCHES "icpc$")
-
-ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
-
-######################################################################
-# Check for EMT64
-IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
-
-  ####################################################################
-  # Check for Intel Compilers.
-  IF   (CMAKE_C_COMPILER MATCHES "icc$")
-    FIRST_TIME_SET(CMAKE_C_FLAGS_RELEASE "-tpp7 -O3 -g 
-DSCI_ASSERTION_LEVEL=0" CACHE STRING "Release  Flags" FORCE)
-    FIRST_TIME_SET(CMAKE_C_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug Flags" 
FORCE)
-  ENDIF(CMAKE_C_COMPILER MATCHES "icc$")
-
-  IF   (CMAKE_CXX_COMPILER MATCHES "icpc$")
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-tpp7 -O3 -g 
-DSCI_ASSERTION_LEVEL=0" CACHE STRING "Release Flags" FORCE)
-         FIRST_TIME_SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g" CACHE STRING "Debug 
Flags" FORCE)
-  ENDIF(CMAKE_CXX_COMPILER MATCHES "icpc$")
-
-ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
-
-
-
-
-######################################################################
-# Check for SGI Irix
-IF(CMAKE_SYSTEM MATCHES IRIX)
-
-  # For now force sproc on IRIX systems.
-  #  MESSAGE("Forcing Irix Threads")
-#   SET(CMAKE_USE_SPROC_INIT 1)
-#   SET(CMAKE_USE_PTHREADS_INIT 0)
-#   SET(CMAKE_THREAD_LIBS_INIT -lfetchop)
-  SET(CMAKE_USE_SPROC_INIT 0)
-  SET(CMAKE_USE_PTHREADS_INIT 1)
-  SET(CMAKE_THREAD_LIBS_INIT -lpthread -lfetchop)
-
-  # Check for CC compiler and add -LANG:std to it
-  IF(CMAKE_CXX_COMPILER MATCHES "CC")
-    FIRST_TIME_SET(CMAKE_CXX_FLAGS "-64 -LANG:std" STRING "Standard CXX 
flags")
-    FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-DSCI_ASSERTION_LEVEL=0 -O3 
-OPT:IEEE_arithmetic=3" STRING "Optimized Flags")
-  ENDIF(CMAKE_CXX_COMPILER MATCHES "CC")
-
-  IF(CMAKE_C_COMPILER MATCHES "cc")
-    FIRST_TIME_SET(CMAKE_C_FLAGS "-64" STRING "Standard CC flags")
-    FIRST_TIME_SET(CMAKE_SHARED_LINKER_FLAGS "-64" STRING "Standard Linker 
flags")
-  ENDIF(CMAKE_C_COMPILER MATCHES "cc")
-
-ELSE(CMAKE_SYSTEM MATCHES IRIX)
-#  MESSAGE("IRIX not found")
-ENDIF(CMAKE_SYSTEM MATCHES IRIX)
-
-######################################################################
-# Check for Mac OS
-IF (APPLE)
-
-  # Obtain output of /usr/bin/macine
-  EXEC_PROGRAM("/usr/bin/machine" OUTPUT_VARIABLE APPLE_MACHINE)
-
-  # G4 Powerbook.
-  IF (${APPLE_MACHINE} MATCHES "ppc7450")
-     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-DSCI_ASSERTION_LEVEL=0 -O3 -g 
-fgcse-sm -funroll-loops -fstrict-aliasing -fsched-interblock 
-falign-loops=16 -falign-jumps=16 -falign-functions=16 
-falign-jumps-max-skip=15 -falign-loops-max-skip=15 -ffast-math 
-freorder-blocks -mpowerpc-gpopt -force_cpusubtype_ALL -mtune=G4 -mcpu=G4 
-faltivec -mabi=altivec -mpowerpc-gfxopt" STRING "G4 Optimized Flags")
-  ENDIF (${APPLE_MACHINE} MATCHES "ppc7450")
-
-  # G5 Workstation.
-  IF (${APPLE_MACHINE} STREQUAL "ppc970")
-     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-DSCI_ASSERTION_LEVEL=0 -O3 -g 
-fgcse-sm -funroll-loops -fstrict-aliasing -fsched-interblock 
-falign-loops=16 -falign-jumps=16 -falign-functions=16 
-falign-jumps-max-skip=15 -falign-loops-max-skip=15 -ffast-math 
-freorder-blocks -mpowerpc-gpopt -force_cpusubtype_ALL -mtune=G5 -mcpu=G5 
-mpowerpc64 -faltivec -mabi=altivec -mpowerpc-gfxopt" STRING "G5 Optimized 
Flags")
-  ENDIF(${APPLE_MACHINE} STREQUAL "ppc970")
-
-  # Core Duo.  
-  IF (${APPLE_MACHINE} STREQUAL "i486") # ???
-     FIRST_TIME_SET(CMAKE_CXX_FLAGS_RELEASE "-DSCI_ASSERTION_LEVEL=0 -O3 
-fgcse-sm -funroll-loops -fstrict-aliasing -fsched-interblock -ffast-math 
-freorder-blocks -fpermissive -march=prescott -mtune=prescott -msse -msse2 
-msse3 -mfpmath=sse" STRING "Core Duo Optimized Flags")
-  ENDIF (${APPLE_MACHINE} STREQUAL "i486")
-
-ENDIF (APPLE)
-
-##################################################################
-# Check to see if the system supports SSE2.
-FILE(WRITE ${CMAKE_BINARY_DIR}/test/test.c "#include <emmintrin.h>\nstatic 
__m128 foo;\n\n")
-EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
-  ARGS -c ${CMAKE_CXX_FLAGS} -o /dev/null ${CMAKE_BINARY_DIR}/test/test.c
-  OUTPUT_VARIABLE OUTPUT
-  RETURN_VALUE NOT_MANTA_SSE )
-
-IF(NOT NOT_MANTA_SSE)
-  SET(MANTA_SSE TRUE CACHE BOOL "Compile SSE code.")
-
-  # Check to see if the system is using gcc sse intrinsics.
-  FILE(WRITE ${CMAKE_BINARY_DIR}/test/test.c "#include <emmintrin.h>\nstatic 
__m128i foo = _mm_set1_epi64x( (long long)1 );\n\n")
-  EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
-    ARGS -c ${CMAKE_CXX_FLAGS} -o /dev/null ${CMAKE_BINARY_DIR}/test/test.c
-    OUTPUT_VARIABLE OUTPUT
-    RETURN_VALUE NOT_MANTA_SSE_GCC )  
-  
-  IF(NOT NOT_MANTA_SSE_GCC)
-    SET(MANTA_SSE_GCC TRUE CACHE BOOL "Found *epi64x intrinsics")
-  ELSE(NOT NOT_MANTA_SSE_GCC)
-    SET(MANTA_SSE_GCC FALSE CACHE BOOL "Couldn't find *epi64x intrinsics" 
FORCE)
-  ENDIF(NOT NOT_MANTA_SSE_GCC)
-
-ELSE(NOT NOT_MANTA_SSE)
-  IF(MANTA_SSE)
-    # We tried to turn it on and it isn't available
-    MESSAGE("Couldn't compile with sse.  Try adding -msse -msse2 to 
CMAKE_CXX_FLAGS compiler flags.")
-    MESSAGE("compiler: " ${CMAKE_CXX_COMPILER})
-    MESSAGE("compiler flags: " ${CMAKE_CXX_FLAGS})
-    MESSAGE(${OUTPUT})
-  ENDIF(MANTA_SSE)
-  SET(MANTA_SSE FALSE CACHE BOOL "Couldn't compile SSE code." FORCE)
-  SET(MANTA_SSE_GCC FALSE CACHE BOOL "Couldn't find *epi64x intrinsics." 
FORCE)
-ENDIF(NOT NOT_MANTA_SSE)
+###############################################################################
+###############################################################################
+# Configure build behavior
+###############################################################################
+###############################################################################
 
-##################################################################
-## No more setting CXX_FLAGS beyond this point.  Only appending.
+# Include helper cmake scripts
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/Macros.cmake)       # Include all 
Manta CMake Macros.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/BuildType.cmake)    # Set various 
options based on the build type.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/CheckSSE.cmake)     # Check if 
the build supports SSE
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/About.cmake)        # Add a 
static library build info and license.
+
+# Search for common dependencies.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindX11andGL.cmake) # Find X11 
and GL, specialized on OSX and Cygwin
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindTeem.cmake)     # Locate Teem.
+
+# Check for specific machine/compiler options.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigIA64.cmake)       # SGI 
Itanium2 flags.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigX86_64.cmake)     # AMD64 
and Intel EM64T flags.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigIccVersion.cmake) # Extract 
Intel Compiler version info.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigIrix.cmake)       # SGI 
Irix Mips compiler flags.
+INCLUDE (${CMAKE_CURRENT_SOURCE_DIR}/CMake/ConfigApple.cmake)      # Apple 
processor identification.
 
 ## We need SCI_NOPERSISTENT to be defined
 FORCE_ADD_CXX_FLAGS("-DSCI_NOPERSISTENT")
@@ -230,33 +50,20 @@
 SET(USE_STATS_COLLECTOR 0 CACHE BOOL "Enable stats collection")
 
 
###############################################################################
-## Include the configured files
-INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include)
-
 
###############################################################################
-IF (OPENGL_INCLUDE_PATH)
-  INCLUDE_DIRECTORIES (${OPENGL_INCLUDE_PATH})
-ENDIF (OPENGL_INCLUDE_PATH)
+# OPTIONAL PROGRAMS AND LIBRARIES
+###############################################################################
+###############################################################################
 
 SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Single 
output directory for building all libraries.")
 SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Single 
output directory for building all executables.")
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} 
-                    ${CMAKE_CURRENT_SOURCE_DIR}/SCIRun 
-                    ${CMAKE_CURRENT_SOURCE_DIR}/SCIRun/include)
-SET(MAIN_SUBDIRS
-  SCIRun/Core
-  SCIRun/include/sci_defs
-  Core
-  include
-  Interface
-  Image
-  Model
-  UserInterface
-  Engine
-  StandAlone
-  scenes
-  tests
+INCLUDE_DIRECTORIES(
+  ${CMAKE_CURRENT_SOURCE_DIR} 
+  ${CMAKE_CURRENT_SOURCE_DIR}/SCIRun 
+  ${CMAKE_CURRENT_SOURCE_DIR}/SCIRun/include
+  ${CMAKE_BINARY_DIR}/include
+  ${OPENGL_INCLUDE_PATH}
   )
 
 SET(MANTA_TARGET_LINK_LIBRARIES
@@ -269,64 +76,42 @@
   Manta_Core
   Manta_Core_XUtils
   SCIRun_Core
+  About
   )
 
+SUBDIRS(
+  SCIRun/Core
+  SCIRun/include/sci_defs
+  Core
+  include
+  Interface
+  Image
+  Model
+  UserInterface
+  Engine
+  StandAlone
+  scenes
+  tests
+  )
 
-# Since SWIG support wasn't added to CMake until version 2.0, only do
-# the check if we have a new enough version.
-SET(BUILD_SWIG_INTERFACE 0 CACHE BOOL "Check for swig/python")
-IF(BUILD_SWIG_INTERFACE)
-IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 1.9)
-  # This will dump all the interface files in the library path.  Note
-  # that this needs to be set before you try to find swig.
-  SET(CMAKE_SWIG_OUTDIR ${LIBRARY_OUTPUT_PATH})
-  # Only process the swig directory if we have swig stuff
-  FIND_PACKAGE(SWIG)
-  IF (SWIG_FOUND)
-   SET(MAIN_SUBDIRS ${MAIN_SUBDIRS} SwigInterface)
-  ENDIF (SWIG_FOUND)
-ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 1.9)
-ENDIF(BUILD_SWIG_INTERFACE)
-
-
-# Check to see whether the histx performance monitoring tools should
-# be built on IA64.
-SET(BUILD_HISTX_MANTA 0 CACHE BOOL "Build Histx-Manta tools")
-IF(BUILD_HISTX_MANTA)
-  SUBDIRS(histx)
-ENDIF(BUILD_HISTX_MANTA)
-
-# Check to see whether the optional fox/ directory should be included.
-SET(BUILD_FOX 0 CACHE BOOL "Build fox frontend.")
-IF(BUILD_FOX)
-  SUBDIRS(fox)
-ENDIF(BUILD_FOX)
-
-SET(BUILD_NRRDPARTICLES 0 CACHE BOOL "Build NRRD particle data reader/scene")
-
-SET(BUILD_DYNLT 0 CACHE BOOL "Lazily evaluated LTs for NRRD particle 
datasets")
-IF(BUILD_DYNLT)
-  SUBDIRS(DynLT)
-ENDIF(BUILD_DYNLT)
-
-##################################################################
-# Look for Teem http://teem.sourceforge.net/
-
-# Look for library here before you look in Thirdparty path
-SET(TEEM_INSTALL_PATH "" CACHE PATH "Default search path for Teem install")
-
-FIND_LIBRARY( FOUND_TEEM_LIB     NAMES teem
-                                 PATHS ${TEEM_INSTALL_PATH}/lib 
${THIRD_PARTY_LIBRARY_PATH} /usr/local/lib /usr/lib
-                                 DOC "Teem library (This is a path.)" )
-FIND_PATH   ( FOUND_TEEM_INCLUDE teem/nrrd.h ${TEEM_INSTALL_PATH}/include 
${THIRD_PARTY_INCLUDE_PATH} /usr/local/include /usr/include
-                                 DOC "Teem Include (This is a path.)" )
 
+###############################################################################
+###############################################################################
+# OPTIONAL PROGRAMS AND LIBRARIES
+###############################################################################
+###############################################################################
 
-# Configure main subdirectories.
+# Optional Sub-directories
+SUBDIRS_IF(BUILD_SWIG_INTERFACE "Check for swig/python" SwigInterface)
+SUBDIRS_IF(BUILD_FOX "Build fox frontend" fox)
 
-SUBDIRS( ${MAIN_SUBDIRS} )
+SET(BUILD_NRRDPARTICLES 0 CACHE BOOL "Build NRRD particle data reader/scene")
+SUBDIRS_IF(BUILD_DYNLT "Lazily evaluated LTs for NRRD particle datasets" 
DynLT)
 
+###############################################################################
+###############################################################################
 # Now that everything is done indicate that we have finished
 # configuring at least once.
-
 SET(PASSED_FIRST_CONFIGURE ON CACHE INTERNAL "Already Configured once?")
+###############################################################################
+###############################################################################

Added: trunk/Core/Util/About.h
==============================================================================
--- (empty file)
+++ trunk/Core/Util/About.h     Fri Aug 11 21:08:31 2006
@@ -0,0 +1,44 @@
+#ifndef UTIL_ABOUT__H
+#define UTIL_ABOUT__H
+
+
+/*
+  For more information, please see: http://software.sci.utah.edu
+
+  The MIT License
+
+  Copyright (c) 2005-2006
+  Scientific Computing and Imaging Institute, University of Utah
+
+  License for the specific language governing rights and limitations under
+  Permission is hereby granted, free of charge, to any person obtaining a
+  copy of this software and associated documentation files (the "Software"),
+  to deal in the Software without restriction, including without limitation
+  the rights to use, copy, modify, merge, publish, distribute, sublicense,
+  and/or sell copies of the Software, and to permit persons to whom the
+  Software is furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+  DEALINGS IN THE SOFTWARE.
+*/
+
+#include <string>
+
+namespace Manta {
+
+  // Return revision and build information.
+  const char *getAboutString();
+
+  // Return the software license.
+  const char *getLicenseString();
+};
+
+#endif

Modified: trunk/StandAlone/manta.cc
==============================================================================
--- trunk/StandAlone/manta.cc   (original)
+++ trunk/StandAlone/manta.cc   Fri Aug 11 21:08:31 2006
@@ -40,6 +40,7 @@
 #include <Core/Exceptions/InternalError.h>
 #include <Core/Exceptions/IllegalArgument.h>
 #include <Core/Thread/Time.h>
+#include <Core/Util/About.h>
 
 // Default scene includes.
 #include <Core/Color/ColorDB.h>
@@ -94,6 +95,15 @@
 
 static void usage(MantaInterface* rtrt)
 {
+
+  cerr << "Manta Interactive Ray Tracer" << "\n\n";
+  
+  cerr << getLicenseString() << "\n";
+    
+  cerr << "Revision information:\n";
+  
+  cerr << getAboutString() << "\n\n";
+  
   cerr << "Usage: manta [options]\n";
   cerr << "Valid options are:\n";
   cerr << " -help           - Print this message and exit\n";
@@ -121,6 +131,7 @@
   cerr << " -renderer S     - Use renderer S, valid renderers are:\n";
   printList(cerr, rtrt->listRenderers(), 2);
   cerr << " -scene S        - Render Scene S\n";
+  
   Thread::exitAll(1);
 }
 




  • [MANTA] r1165 - in trunk: . CMake Core/Util StandAlone, abe, 08/11/2006

Archive powered by MHonArc 2.6.16.

Top of page