Text archives Help
- 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.