c7b6dd9a18
Updated all doxyfiles under doc/Doxyfiles. They are now all processed by cmake but make targets are only generated for OpenSceneGraphReferenceDocs and OpenThreadsReferenceDocs. The others can be run with doxygen directly in <builddir>/doc. Fixed a copy-paste in openthreads sproc and pthreads CMakeLists Added the osg logo to the html footers Added possibility to get generation of chm files. CMakeLists (toplevel): Added install of osg and ot reference docs. This also generates packaging targets of openscenegraph-doc and openthreads-doc if you have packaging enabled Removed the unused USING_OP_OT_TRIPLE_SET since there was no way of enabling it anyway Removed BUILD_REF_DOCS. IMO it was redundant - BUILD_DOCUMENTATION does the same thing and we get that anyway from including Documentation.cmake. OsgCPack.cmake: Removed generation of PACKAGE_SRC for msvc Added special handling for -doc packaging targets - they don't require system, architecture or compiler"
138 lines
6.8 KiB
CMake
138 lines
6.8 KiB
CMake
#
|
|
# collect a descriptive system specification string <system>-<arch>-<compiler>
|
|
#
|
|
|
|
# resolve architecture. The reason i "change" i686 to i386 is that debian packages
|
|
# require i386 so this is for the future
|
|
IF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
|
SET(SYSTEM_ARCH "i386")
|
|
ELSE("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
|
SET(SYSTEM_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
|
ENDIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
|
|
|
# set a default system name - use CMake setting (Linux|Windows|...)
|
|
SET(SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
|
#message(STATUS "CMAKE_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}")
|
|
#message(STATUS "CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}")
|
|
|
|
SET(OSG_CPACK_COMPILER "" CACHE STRING "This ia short string (vc90, vc80sp1, g++-4.3, ...) describing your compiler. The string is used for creating package filenames")
|
|
|
|
# Windows specific settings.
|
|
# For windows the compiler needs to be specified in the package filename
|
|
IF(WIN32)
|
|
IF(MSVC)
|
|
#message(STATUS "MSVC_VERSION ${MSVC_VERSION}")
|
|
#Visual C++, 32-bit, version 6.0 1200
|
|
#Visual C++, 32-bit, version .net 2002 1300
|
|
#Visual C++, 32-bit, version .net 2003 1310
|
|
#Visual C++, 32-bit, version 2005 1400 (vc80)
|
|
#Visual C++, 32-bit, version 2005 SP1 14?? (vc80_sp1)
|
|
#Visual C++, 32-bit, version 2008 1500 (vc90)
|
|
|
|
IF(MSVC_VERSION EQUAL 1500)
|
|
SET(OSG_CPACK_COMPILER "vc90")
|
|
ENDIF(MSVC_VERSION EQUAL 1500)
|
|
|
|
IF(MSVC_VERSION EQUAL 1400) # This doesn't work with my 2005 vc80sp1 compiler
|
|
SET(OSG_CPACK_COMPILER "vc80")
|
|
ELSE(MSVC_VERSION EQUAL 1400)
|
|
IF(CMAKE_COMPILER_2005)
|
|
SET(OSG_CPACK_COMPILER "vc80")
|
|
ENDIF(CMAKE_COMPILER_2005)
|
|
ENDIF(MSVC_VERSION EQUAL 1400)
|
|
|
|
IF(MSVC_VERSION EQUAL 1310)
|
|
SET(OSG_CPACK_COMPILER "vc70")
|
|
ENDIF(MSVC_VERSION EQUAL 1310)
|
|
|
|
# check arch bitcount and include this in the system name
|
|
IF(CMAKE_CL_64)
|
|
SET(SYSTEM_NAME "win64")
|
|
ELSE(CMAKE_CL_64)
|
|
SET(SYSTEM_NAME "win32")
|
|
ENDIF(CMAKE_CL_64)
|
|
ENDIF(MSVC)
|
|
ENDIF(WIN32)
|
|
|
|
IF(OSG_CPACK_COMPILER)
|
|
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH}-${OSG_CPACK_COMPILER})
|
|
ELSE(OSG_CPACK_COMPILER)
|
|
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH})
|
|
ENDIF(OSG_CPACK_COMPILER)
|
|
|
|
#message(STATUS "OSG_CPACK_SYSTEM_SPEC_STRING ${OSG_CPACK_SYSTEM_SPEC_STRING}")
|
|
|
|
# expose this to the user/packager
|
|
SET(CPACK_PACKAGE_CONTACT "" CACHE STRING "Supply contact information (email) here")
|
|
## variables that apply to all packages
|
|
SET(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
|
|
SET(CPACK_PACKAGE_FILE_NAME "openscenegraph-all-${OPENSCENEGRAPH_VERSION}-${OSG_CPACK_SYSTEM_SPEC_STRING}")
|
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The OpenSceneGraph is an open source high performance 3d graphics toolkit")
|
|
SET(CPACK_PACKAGE_VENDOR "The OpenSceneGraph authors")
|
|
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OpenSceneGraph_SOURCE_DIR}/README.txt")
|
|
SET(CPACK_RESOURCE_FILE_LICENSE "${OpenSceneGraph_SOURCE_DIR}/LICENSE.txt")
|
|
SET(CPACK_PACKAGE_VERSION_MAJOR ${OPENSCENEGRAPH_MAJOR_VERSION})
|
|
SET(CPACK_PACKAGE_VERSION_MINOR ${OPENSCENEGRAPH_MINOR_VERSION})
|
|
SET(CPACK_PACKAGE_VERSION_PATCH ${OPENSCENEGRAPH_PATCH_VERSION})
|
|
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenSceneGraph-${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}")
|
|
SET(CPACK_TOPLEVEL_TAG ${CPACK_PACKAGE_NAME}-${OPENSCENEGRAPH_VERSION})
|
|
SET(CPACK_SOURCE_TOPLEVEL_TAG ${CPACK_PACKAGE_NAME}-${OPENSCENEGRAPH_VERSION}-src)
|
|
|
|
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "openscenegraph-${OPENSCENEGRAPH_VERSION}-src")
|
|
# Add the build directory to the ignore patterns and expose var to the users
|
|
# N.B. This is especially important if your are building out-of-source but under the source tree (i.e <OpenSceneGraphSrcDir>/build).
|
|
# If you don't name your builddir here it will get pulled into the src package. Size of my build tree is gigabytes so you dont want this
|
|
SET(CPACK_SOURCE_IGNORE_FILES "/\\\\\\\\.svn/;\\\\\\\\.swp$;\\\\\\\\.#;/#;build" CACHE STRING "Add ignore patterns that will left out of the src package")
|
|
|
|
# these goes for all platforms. Setting these stops the CPack.cmake script from generating options about other package compression formats (.z .tz, etc.)
|
|
SET(CPACK_GENERATOR "TGZ")
|
|
SET(CPACK_SOURCE_GENERATOR "TGZ")
|
|
|
|
IF(WIN32 AND NOT UNIX)
|
|
|
|
OPTION(BUILD_NSIS_PACKAGE "Turn this ON if you want to generate a visual installer using NSIS (nsis.sourceforge.net)" OFF)
|
|
IF(BUILD_NSIS_PACKAGE)
|
|
# There is a bug in NSIS that does not handle full unix paths properly. Make
|
|
# sure there is at least one set of four (4) backlasshes.
|
|
SET(CPACK_PACKAGE_ICON "${OpenSceneGraph_SOURCE_DIR}/PlatformSpecifics/Windows/icons\\\\osg.ico")
|
|
SET(CPACK_NSIS_INSTALLED_ICON_NAME "")
|
|
SET(CPACK_NSIS_DISPLAY_NAME "OpenSceneGraph ${OPENSCENEGRAPH_VERSION}")
|
|
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.openscenegraph.org/projects/osg/wiki/Support")
|
|
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.openscenegraph.org/projects/osg/wiki/About")
|
|
SET(CPACK_NSIS_CONTACT "")
|
|
SET(CPACK_NSIS_MODIFY_PATH ON)
|
|
|
|
SET(CPACK_GENERATOR "NSIS")
|
|
ENDIF(BUILD_NSIS_PACKAGE)
|
|
ELSE(WIN32 AND NOT UNIX)
|
|
SET(CPACK_STRIP_FILES ON)
|
|
SET(CPACK_SOURCE_STRIP_FILES ON)
|
|
ENDIF(WIN32 AND NOT UNIX)
|
|
|
|
#STRING(TOLOWER "${CMAKE_SYSTEM_NAME}" CPACK_SYSTEM_NAME)
|
|
|
|
# Including CPack will generate CPackConfig.cmake and CPackSourceConfig.cmake and make targets regardless of how i call it
|
|
# The first idea was to not use it at all and that might be where we're going. For now it also defines some useful macros, especially
|
|
# for the visual installers, so I decided to include it to have the possibility to create visual installers for ms and mac and then try to
|
|
# make the best use I could of the targets that including CPack implies
|
|
INCLUDE(CPack)
|
|
|
|
# including CPack also has the benefit of creating this nice variable which is a collection of all defined COMPONENTS
|
|
# Create configs and targets for each component
|
|
FOREACH(package ${CPACK_COMPONENTS_ALL})
|
|
# the doc packages don't need a system-arch specification
|
|
IF(${package} MATCHES -doc)
|
|
SET(CPACK_PACKAGE_FILE_NAME ${package}-${OPENSCENEGRAPH_VERSION})
|
|
ELSE(${package} MATCHES -doc)
|
|
SET(CPACK_PACKAGE_FILE_NAME ${package}-${OPENSCENEGRAPH_VERSION}-${OSG_CPACK_SYSTEM_SPEC_STRING})
|
|
ENDIF(${package} MATCHES -doc)
|
|
|
|
SET(OSG_CPACK_COMPONENT ${package})
|
|
CONFIGURE_FILE("${OpenSceneGraph_SOURCE_DIR}/CMakeModules/OsgCPackConfig.cmake.in" "${OpenSceneGraph_BINARY_DIR}/CPackConfig-${OSG_CPACK_COMPONENT}.cmake" IMMEDIATE)
|
|
|
|
ADD_CUSTOM_TARGET("package_${package}"
|
|
COMMAND ${CMAKE_CPACK_COMMAND} --config ${OpenSceneGraph_BINARY_DIR}/CPackConfig-${OSG_CPACK_COMPONENT}.cmake
|
|
COMMENT Run CPack packaging for ${package}...
|
|
)
|
|
ENDFOREACH(package ${CPACK_COMPONENTS_ALL})
|