[artoolkit-commits] SF.net SVN: artoolkit:[286] branches/hartmut-pre-2_8/artoolkit
Optical marker tracking and overlay for augmented reality.
Brought to you by:
philip_lamb
From: <ret...@us...> - 2008-08-18 23:28:25
|
Revision: 286 http://artoolkit.svn.sourceforge.net/artoolkit/?rev=286&view=rev Author: retrakker Date: 2008-08-18 23:28:29 +0000 (Mon, 18 Aug 2008) Log Message: ----------- - modified CMake build system to work on Windows - included packaging module for ARToolKit SDK Modified Paths: -------------- branches/hartmut-pre-2_8/artoolkit/CMakeLists.txt branches/hartmut-pre-2_8/artoolkit/CMakeModules/ARToolKitHelper.cmake branches/hartmut-pre-2_8/artoolkit/examples/simpleLite/CMakeLists.txt branches/hartmut-pre-2_8/artoolkit/lib/CMakeLists.txt branches/hartmut-pre-2_8/artoolkit/util/mk_patt/CMakeLists.txt Added Paths: ----------- branches/hartmut-pre-2_8/artoolkit/CMakeModules/FindDirectShow.cmake branches/hartmut-pre-2_8/artoolkit/CMakeModules/Packaging.cmake.in Property Changed: ---------------- branches/hartmut-pre-2_8/artoolkit/ Property changes on: branches/hartmut-pre-2_8/artoolkit ___________________________________________________________________ Added: svn:ignore + build* Modified: branches/hartmut-pre-2_8/artoolkit/CMakeLists.txt =================================================================== --- branches/hartmut-pre-2_8/artoolkit/CMakeLists.txt 2008-08-18 23:24:59 UTC (rev 285) +++ branches/hartmut-pre-2_8/artoolkit/CMakeLists.txt 2008-08-18 23:28:29 UTC (rev 286) @@ -4,39 +4,95 @@ # (c) Copyright 2007-2008, HITLabNZ, Hartmut Seichter # ############################################################################## -PROJECT(ARToolKit) +cmake_minimum_required(VERSION 2.4) -SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ${CMAKE_MODULE_PATH}) +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) -SET(ARTOOLKIT_VERSION_MAJOR 2) -SET(ARTOOLKIT_VERSION_MINOR 72) -SET(ARTOOLKIT_VERSION_TINY 3) -SET(ARTOOLKIT_VERSION_REV 99) +project(ARToolKit) -SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) -SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ${CMAKE_MODULE_PATH}) +set(ARTOOLKIT_VERSION_MAJOR 2) +set(ARTOOLKIT_VERSION_MINOR 72) +set(ARTOOLKIT_VERSION_TINY 3) +set(ARTOOLKIT_VERSION_REV 99) -IF (APPLE) - SET(CMAKE_OSX_ARCHITECTURES ppc;i386) - SET(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk) -ENDIF(APPLE) +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Executable output folder") +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Library output folder") -IF (UNIX) - SET(USE_GSTREAMER 0) +# +# Preset for Visual Studio products +# +if(MSVC) - INCLUDE(FindGStreamer) + set(GLUT_ROOT_PATH "${CMAKE_SOURCE_DIR}/lib/SRC/_ext/glut-3.7.6-bin" CACHE PATH "GLUT root folder") + set(GLUT_glut_LIBRARY "${CMAKE_SOURCE_DIR}/lib/SRC/_ext/glut-3.7.6-bin/lib/glut32.lib" CACHE FILENAME "GLUT include library") + + install(FILES + ${CMAKE_SOURCE_DIR}/lib/SRC/_ext/glut-3.7.6-bin/lib/glut32.dll + DESTINATION bin + ) + +endif(MSVC) - IF(GSTREAMER_FOUND) +if(WIN32) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/Data + DESTINATION bin + PATTERN ".svn" EXCLUDE + ) +endif(WIN32) + +install(FILES + ChangeLog.txt + COPYING.txt + README.txt + DESTINATION share/artoolkit_2 + ) + +# +# Depending on what is available we work our way through +# +find_package(OpenGL) +find_package(GLUT) + + +if (APPLE) + set(CMAKE_OSX_ARCHITECTURES ppc;i386) + set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk) +endif(APPLE) + +if (UNIX) + set(USE_GSTREAMER 0) + + include(FindGStreamer) + + if(GSTREAMER_FOUND) SET(USE_GSTREAMER 1) - ENDIF(GSTREAMER_FOUND) -ENDIF(UNIX) + endif(GSTREAMER_FOUND) +endif(UNIX) # right order of include files is important -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/include) -INCLUDE(ARToolKitHelper) +include(ARToolKitHelper) -ADD_SUBDIRECTORY(lib) -ADD_SUBDIRECTORY(util) -ADD_SUBDIRECTORY(examples) +add_subdirectory(lib) +add_subdirectory(util) +add_subdirectory(examples) + + +# +# Optional packaging for SDK +# +option(ARTOOLKIT_BUILD_PACKAGE "Build distribution packages" OFF) +if(ARTOOLKIT_BUILD_PACKAGE) + configure_file( + ${CMAKE_SOURCE_DIR}/CMakeModules/Packaging.cmake.in + ${CMAKE_BINARY_DIR}/.cpack/ARTKPackaging.cmake + @ONLY + ) + include(${CMAKE_BINARY_DIR}/.cpack/ARTKPackaging.cmake) +endif (ARTOOLKIT_BUILD_PACKAGE) + Modified: branches/hartmut-pre-2_8/artoolkit/CMakeModules/ARToolKitHelper.cmake =================================================================== --- branches/hartmut-pre-2_8/artoolkit/CMakeModules/ARToolKitHelper.cmake 2008-08-18 23:24:59 UTC (rev 285) +++ branches/hartmut-pre-2_8/artoolkit/CMakeModules/ARToolKitHelper.cmake 2008-08-18 23:28:29 UTC (rev 286) @@ -13,7 +13,43 @@ ADD_EXECUTABLE(${EXE_NAME} MACOSX_BUNDLE ${SRCS} ${_datafiles}) ELSE(APPLE) - ADD_EXECUTABLE(${EXE_NAME} WIN32 ${SRCS} ${_datafiles}) + ADD_EXECUTABLE(${EXE_NAME} ${SRCS} ${_datafiles}) ENDIF(APPLE) ENDMACRO(ARTOOLKIT_EXECUTABLE) +macro(artoolkit_lib_install target) + + if (WIN32) + set(lib_dest bin) + else (WIN32) + set(lib_dest lib) + endif(WIN32) + + + install(TARGETS ${target} + ARCHIVE DESTINATION lib + LIBRARY DESTINATION ${lib_dest} + RUNTIME DESTINATION bin + PUBLIC_HEADER DESTINATION include/AR + ) + +endmacro(artoolkit_lib_install target) + +macro(artoolkit_exe_install target) + + if (WIN32) + set(lib_dest bin) + else (WIN32) + set(lib_dest lib) + endif(WIN32) + + + install(TARGETS ${target} + ARCHIVE DESTINATION lib + LIBRARY DESTINATION ${lib_dest} + RUNTIME DESTINATION bin + PUBLIC_HEADER DESTINATION include/AR + ) + +endmacro(artoolkit_exe_install target) + Added: branches/hartmut-pre-2_8/artoolkit/CMakeModules/FindDirectShow.cmake =================================================================== --- branches/hartmut-pre-2_8/artoolkit/CMakeModules/FindDirectShow.cmake (rev 0) +++ branches/hartmut-pre-2_8/artoolkit/CMakeModules/FindDirectShow.cmake 2008-08-18 23:28:29 UTC (rev 286) @@ -0,0 +1,107 @@ +# - Test for DirectShow on Windows. +# Once loaded this will define +# DIRECTSHOW_FOUND - system has DirectShow +# DIRECTSHOW_INCLUDE_DIRS - include directory for DirectShow +# DIRECTSHOW_LIBRARIES - libraries you need to link to + +SET(DIRECTSHOW_FOUND "NO") + +# DirectShow is only available on Windows platforms +IF(MSVC) + # Find DirectX Include Directory (dshow depends on it) + FIND_PATH(DIRECTX_INCLUDE_DIR ddraw.h + # WindowsSDK: includes ddraw and dshow + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]/Include" + # VS 7.1 PlatformSDK: includes ddraw and dshow + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC;ProductDir]/PlatformSDK/Include" + # Newer DirectX: dshow not included; requires Platform SDK + "$ENV{DXSDK_DIR}/Include" + # Older DirectX: dshow included + "C:/DXSDK/Include" + DOC "What is the path where the file ddraw.h can be found" + NO_DEFAULT_PATH + ) + + # if DirectX found, then find DirectShow include directory + IF(DIRECTX_INCLUDE_DIR) + FIND_PATH(DIRECTSHOW_INCLUDE_DIR dshow.h + "${DIRECTX_INCLUDE_DIR}" + "C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2/Include" + "C:/Program Files/Microsoft Platform SDK/Include" + DOC "What is the path where the file dshow.h can be found" + NO_DEFAULT_PATH + ) + + # if DirectShow include dir found, then find DirectShow libraries + IF(DIRECTSHOW_INCLUDE_DIR) + IF(CMAKE_CL_64) + FIND_LIBRARY(DIRECTSHOW_STRMIIDS_LIBRARY strmiids + "${DIRECTSHOW_INCLUDE_DIR}/../Lib/x64" + DOC "Where can the DirectShow strmiids library be found" + NO_DEFAULT_PATH + ) + FIND_LIBRARY(DIRECTSHOW_QUARTZ_LIBRARY quartz + "${DIRECTSHOW_INCLUDE_DIR}/../Lib/x64" + DOC "Where can the DirectShow quartz library be found" + NO_DEFAULT_PATH + ) + ELSE(CMAKE_CL_64) + FIND_LIBRARY(DIRECTSHOW_STRMIIDS_LIBRARY strmiids + "${DIRECTSHOW_INCLUDE_DIR}/../Lib" + "${DIRECTSHOW_INCLUDE_DIR}/../Lib/x86" + DOC "Where can the DirectShow strmiids library be found" + NO_DEFAULT_PATH + ) + FIND_LIBRARY(DIRECTSHOW_QUARTZ_LIBRARY quartz + "${DIRECTSHOW_INCLUDE_DIR}/../Lib" + "${DIRECTSHOW_INCLUDE_DIR}/../Lib/x86" + DOC "Where can the DirectShow quartz library be found" + NO_DEFAULT_PATH + ) + ENDIF(CMAKE_CL_64) + ENDIF(DIRECTSHOW_INCLUDE_DIR) + ENDIF(DIRECTX_INCLUDE_DIR) +ENDIF(MSVC) + +#--------------------------------------------------------------------- +SET(DIRECTSHOW_INCLUDE_DIRS + "${DIRECTX_INCLUDE_DIR}" + "${DIRECTSHOW_INCLUDE_DIR}" + ) + +SET(DIRECTSHOW_LIBRARIES + "${DIRECTSHOW_STRMIIDS_LIBRARY}" + "${DIRECTSHOW_QUARTZ_LIBRARY}" + ) + +#--------------------------------------------------------------------- +INCLUDE (CheckCXXSourceCompiles) + +SET(CMAKE_REQUIRED_INCLUDES ${DIRECTSHOW_INCLUDE_DIRS}) +SET(CMAKE_REQUIRED_LIBRARIES ${DIRECTSHOW_LIBRARIES}) +CHECK_CXX_SOURCE_COMPILES(" + #include <atlbase.h> + #include <dshow.h> + #include <qedit.h> + + int main() + { + CComPtr<IFilterGraph2> filter_graph; + filter_graph.CoCreateInstance(CLSID_FilterGraph); + return 0; + } +" DIRECTSHOW_SOURCE_COMPILES) +SET(CMAKE_REQUIRED_INCLUDES) +SET(CMAKE_REQUIRED_LIBRARIES) + +#--------------------------------------------------------------------- +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + DIRECTSHOW + DEFAULT_MSG + DIRECTX_INCLUDE_DIR + DIRECTSHOW_INCLUDE_DIR + DIRECTSHOW_STRMIIDS_LIBRARY + DIRECTSHOW_QUARTZ_LIBRARY + DIRECTSHOW_SOURCE_COMPILES + ) Added: branches/hartmut-pre-2_8/artoolkit/CMakeModules/Packaging.cmake.in =================================================================== --- branches/hartmut-pre-2_8/artoolkit/CMakeModules/Packaging.cmake.in (rev 0) +++ branches/hartmut-pre-2_8/artoolkit/CMakeModules/Packaging.cmake.in 2008-08-18 23:28:29 UTC (rev 286) @@ -0,0 +1,55 @@ +# +# CPack template for ARToolKit +# +# (c) Copyrights 2008 Hartmut Seichter, HIT Lab NZ +# + +include(InstallRequiredSystemLibraries) + +set(CPACK_PACKAGE_NAME "ARToolKit") +set(CPACK_PACKAGE_VENDOR "Human Interface Technology Laboratory New Zealand") + +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ARToolKit for ${CMAKE_GENERATOR} is an All-In-One package for developing AR applications") + +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.txt") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt") + +set(CPACK_PACKAGE_VERSION_MAJOR ${ARTOOLKIT_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${ARTOOLKIT_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${ARTOOLKIT_VERSION_TINY}) + +set(CPACK_PACKAGE_INSTALL_DIRECTORY "ARToolKit2SDK") + +set(CPACK_PACKAGE_EXECUTABLES "mk_patt;Make Pattern;simpleLite;Simple Example") + +if(WIN32) + + # + # For MSVC compilers (and probably others) we need to copy the runtime + # to the plugins folder as well + # + + set(CPACK_NSIS_MENU_LINKS + "bin" "ARToolKit application folder" + "share/osgART/ChangeLog.txt" "ARToolKit 2.0 ChangeLog" + "share/artoolkit2/README.txt" "ARToolKit ReadMe" + "share/artoolkit2/COPYING.txt" "ARToolKit GPL2 License" + "share/osgART/doc/html/index.html" "osgART 2.0 API Documentation" + "http://artoolkit.sourceforge.net" "ARToolKit website" + "http://www.hitlabnz.org" "HIT Lab NZ website" + "http://www.artoolworks.com" "ARToolworks website" + ) + + set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\artoolkit.sourceforge.net") + set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\artoolkit.sourceforge.net") + set(CPACK_NSIS_CONTACT "in...@hi...") + set(CPACK_NSIS_DISPLAY_NAME "ARToolKit GPL SDK") + +else(WIN32) + if (APPLE) + set(CPACK_GENERATOR "PackageMaker;STGZ") + INCLUDE(CPack) + endif(APPLE) +endif(WIN32) + +include(CPack) Modified: branches/hartmut-pre-2_8/artoolkit/examples/simpleLite/CMakeLists.txt =================================================================== --- branches/hartmut-pre-2_8/artoolkit/examples/simpleLite/CMakeLists.txt 2008-08-18 23:24:59 UTC (rev 285) +++ branches/hartmut-pre-2_8/artoolkit/examples/simpleLite/CMakeLists.txt 2008-08-18 23:28:29 UTC (rev 286) @@ -1,10 +1,11 @@ -SET(EXE_NAME simpleLite) +set(EXE_NAME simpleLite) -SET(SRCS simpleLite.c) +set(SRCS simpleLite.c) -INCLUDE(FindOpenGL) -INCLUDE(FindGLUT) +include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}) -ARTOOLKIT_EXECUTABLE(${EXE_NAME} ${SRCS}) +artoolkit_executable(${EXE_NAME} ${SRCS}) -TARGET_LINK_LIBRARIES(${EXE_NAME} AR ARgsub_lite ARvideo ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) +target_link_libraries(${EXE_NAME} AR ARgsub_lite ARvideo ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) + +artoolkit_exe_install(${EXE_NAME}) Modified: branches/hartmut-pre-2_8/artoolkit/lib/CMakeLists.txt =================================================================== --- branches/hartmut-pre-2_8/artoolkit/lib/CMakeLists.txt 2008-08-18 23:24:59 UTC (rev 285) +++ branches/hartmut-pre-2_8/artoolkit/lib/CMakeLists.txt 2008-08-18 23:28:29 UTC (rev 286) @@ -1 +1 @@ -ADD_SUBDIRECTORY(SRC) \ No newline at end of file +add_subdirectory(SRC) \ No newline at end of file Modified: branches/hartmut-pre-2_8/artoolkit/util/mk_patt/CMakeLists.txt =================================================================== --- branches/hartmut-pre-2_8/artoolkit/util/mk_patt/CMakeLists.txt 2008-08-18 23:24:59 UTC (rev 285) +++ branches/hartmut-pre-2_8/artoolkit/util/mk_patt/CMakeLists.txt 2008-08-18 23:28:29 UTC (rev 286) @@ -2,9 +2,16 @@ SET(SRCS mk_patt.c) -INCLUDE(FindOpenGL) -INCLUDE(FindGLUT) +if(GLUT_FOUND) -ARTOOLKIT_EXECUTABLE(${EXE_NAME} ${SRCS}) + add_definitions(${GLUT_DEFS}) -TARGET_LINK_LIBRARIES(${EXE_NAME} AR ARgsub_lite ARvideo ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) + include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) + + ARTOOLKIT_EXECUTABLE(${EXE_NAME} ${SRCS}) + + target_link_libraries(${EXE_NAME} AR ARgsub_lite ARvideo ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) + + artoolkit_exe_install(${EXE_NAME}) + +endif(GLUT_FOUND) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |