From a9ab2f2d4d08e408212b702d85ef4455f3243a41 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Thu, 26 Mar 2009 18:03:21 +0000 Subject: [PATCH] Add first iteration of SDK building. Builds a PolyVox NSIS installer with the 'package' target. --- CMakeLists.txt | 9 ++++++++- Packaging.cmake | 32 ++++++++++++++++++++++++++++++++ TODO.txt | 11 ++++++++++- examples/OpenGL/CMakeLists.txt | 3 ++- library/CMakeLists.txt | 13 +++++-------- 5 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 Packaging.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 90ab3f09..d111e91a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,5 +2,12 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(PolyVox) +SET(POLYVOX_VERSION_MAJOR "0") +SET(POLYVOX_VERSION_MINOR "1") +SET(POLYVOX_VERSION_PATCH "0") +SET(POLYVOX_VERSION "${POLYVOX_VERSION_MAJOR}.${POLYVOX_VERSION_MINOR}.${POLYVOX_VERSION_PATCH}") + ADD_SUBDIRECTORY(library) -ADD_SUBDIRECTORY(examples/OpenGL) \ No newline at end of file +ADD_SUBDIRECTORY(examples/OpenGL) + +INCLUDE(Packaging.cmake) diff --git a/Packaging.cmake b/Packaging.cmake new file mode 100644 index 00000000..59709b35 --- /dev/null +++ b/Packaging.cmake @@ -0,0 +1,32 @@ +#INCLUDE(InstallRequiredSystemLibraries) + +SET(CPACK_PACKAGE_NAME "PolyVox SDK") +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "PolyVox SDK") +SET(CPACK_PACKAGE_VENDOR "Thermite 3D Team") +#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") +#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") +SET(CPACK_PACKAGE_VERSION_MAJOR ${POLYVOX_VERSION_MAJOR}) +SET(CPACK_PACKAGE_VERSION_MINOR ${POLYVOX_VERSION_MINOR}) +SET(CPACK_PACKAGE_VERSION_PATCH ${POLYVOX_VERSION_PATCH}) +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "PolyVox SDK ${POLYVOX_VERSION}") +IF(WIN32 AND NOT UNIX) + # There is a bug in NSIS that does not handle full unix paths properly. + # Make sure there is at least one set of four backslashes. + #SET(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") + #SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe") + SET(CPACK_NSIS_DISPLAY_NAME "PolyVox SDK ${POLYVOX_VERSION}") + SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\thermite3d.org/phpBB/") + SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\thermite3d.org") + SET(CPACK_NSIS_CONTACT "matt@milliams.com") + SET(CPACK_NSIS_MODIFY_PATH ON) +ELSE(WIN32 AND NOT UNIX) + #SET(CPACK_STRIP_FILES "bin/MyExecutable") + #SET(CPACK_SOURCE_STRIP_FILES "") +ENDIF(WIN32 AND NOT UNIX) +#SET(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") + +INCLUDE(CPack) + +CPACK_ADD_COMPONENT(library DISPLAY_NAME "Library" DESCRIPTION "The runtime libraries" REQUIRED) +CPACK_ADD_COMPONENT(development DISPLAY_NAME "Development" DESCRIPTION "Files required for developing with PolyVox" DEPENDS library) +CPACK_ADD_COMPONENT(example DISPLAY_NAME "OpenGL Example" DESCRIPTION "A PolyVox example application using OpenGL" DEPENDS library) diff --git a/TODO.txt b/TODO.txt index 8ef149f8..9e0920cc 100644 --- a/TODO.txt +++ b/TODO.txt @@ -38,4 +38,13 @@ Define the following terms: -Cell -Volume -Region --Block \ No newline at end of file +-Block + +Packaging +========= +Create components for the NSIS installer (Library, bindings, examples, documentation) - Half done +Add License +Add images for installer (and icons) +Set LZMA compression +Find a way to include both debug and release builds? +The .lib files should be part of the 'development' configuration? diff --git a/examples/OpenGL/CMakeLists.txt b/examples/OpenGL/CMakeLists.txt index 4126e48a..97b3cf2f 100644 --- a/examples/OpenGL/CMakeLists.txt +++ b/examples/OpenGL/CMakeLists.txt @@ -55,7 +55,8 @@ IF (WIN32) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib + COMPONENT example ) - ADD_DEPENDENCIES(OpenGLExample PolyVoxCore) + ADD_DEPENDENCIES(OpenGLExample PolyVoxCore) #This shouldn't be needed ENDIF (WIN32) \ No newline at end of file diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index fcf78988..61fb3eee 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -2,11 +2,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(PolyVoxCore) -SET(POLYVOX_VERSION_MAJOR "0") -SET(POLYVOX_VERSION_MINOR "1") -SET(POLYVOX_VERSION_PATCH "0") -SET(POLYVOX_VERSION "${POLYVOX_VERSION_MAJOR}.${POLYVOX_VERSION_MINOR}.${POLYVOX_VERSION_PATCH}") - #Projects source files SET(CORE_SRC_FILES source/PolyVoxCore/GradientEstimators.cpp @@ -103,9 +98,10 @@ INSTALL(TARGETS PolyVoxCore RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib + COMPONENT library ) -INSTALL(FILES ${CORE_INC_FILES} DESTINATION include/PolyVoxCore) +INSTALL(FILES ${CORE_INC_FILES} DESTINATION include/PolyVoxCore COMPONENT development) #Util #Build @@ -121,9 +117,10 @@ INSTALL(TARGETS PolyVoxUtil RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib + COMPONENT library ) -INSTALL(FILES ${UTIL_INC_FILES} DESTINATION include/PolyVoxUtil) +INSTALL(FILES ${UTIL_INC_FILES} DESTINATION include/PolyVoxUtil COMPONENT development) #Set up PolyVoxConfig.cmake if(WIN32) @@ -133,7 +130,7 @@ else(WIN32) endif(WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/PolyVoxConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/PolyVoxConfig.cmake @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PolyVoxConfig.cmake DESTINATION ${CONFIG_FILE_DIR}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PolyVoxConfig.cmake DESTINATION ${CONFIG_FILE_DIR} COMPONENT development) find_package(Doxygen) if(DOXYGEN_FOUND)