CMake patch from Ralf Hölzemer (cheleb)
authorCampbell Barton <ideasman42@gmail.com>
Wed, 14 Jul 2010 20:26:46 +0000 (20:26 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 14 Jul 2010 20:26:46 +0000 (20:26 +0000)
[#22849] Fix cmake install target on linux
--- from the tracker ---
This patch fixes the install target for the linux platform. Since the new configuration path changes are in effect, files have to be installed in the correct places instead of just copying the local installation to $PREFIX/share/blender.

It also provides a new macro to determine the correct blender version values.

Changes in this patch include:

- the .desktop menu file is installed in $PREFIX/share/applications and points to the svg icon instead of a png one, which is also installed in $PREFIX/share/pixmaps
- docs are installed in $PREFIX/share/doc/blender
- scripts are installed in in $PREFIX/share/blender/x.xx/
- locales are installed in in $PREFIX/share/blender/x.xx/datafiles
- a new cmake macro determines and sets the correct values for BLENDER_VERSION_MAJOR, BLENDER_VERSION_MINOR, BLENDER_SUBVERSION, BLENDER_VERSION, BLENDER_MINVERSION_MAJOR, BLENDER_MINVERSION_MINOR, BLENDER_MINSUBVERSION and BLENDER_MINVERSION by parsing source/blender/blenkernel/BKE_blender.h and calculating major/minor values. This replaces the hardcoded value in the top CMakeLists file and is used by all platforms.

CMakeLists.txt
build_files/cmake/macros.cmake
release/freedesktop/blender.desktop
source/creator/CMakeLists.txt

index 70ec8952ce1bb82414b08eb60629f43cf951438a..bec1353a8cf3a16165066210eb5531c9549d8294 100644 (file)
@@ -55,10 +55,6 @@ PROJECT(Blender)
 SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
 SET(LIBRARY_OUTPUT_PATH  ${CMAKE_BINARY_DIR}/lib)
 
-# Note! - Could create this from the blender version string
-# ...but thats quite involved, make sure this matches the blender version.
-SET(BLENDER_VERSION  2.5)
-
 #-----------------------------------------------------------------------------
 # Load some macros.
 INCLUDE(build_files/cmake/macros.cmake)
@@ -66,6 +62,8 @@ INCLUDE(build_files/cmake/macros.cmake)
 #-----------------------------------------------------------------------------
 # Set default config options
 
+GET_BLENDER_VERSION()
+
 # Blender internal features
 OPTION(WITH_INTERNATIONAL "Enable I18N   (International fonts and text)" ON)
 OPTION(WITH_LCMS          "Enable color correction with lcms" OFF)
index aec86f7467ab6ddefc981e5536d6a982e0b6a149..84e6b788dc0906dfe2ceb1e24320ab06852874e6 100644 (file)
@@ -198,3 +198,36 @@ MACRO(TEST_SSE_SUPPORT)
        SUPPORT_SSE_BUILD)
 ENDMACRO(TEST_SSE_SUPPORT)
 
+MACRO(GET_BLENDER_VERSION)
+       FILE(READ ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender.h CONTENT)
+       STRING(REGEX REPLACE "\n" ";" CONTENT "${CONTENT}")
+       STRING(REGEX REPLACE "\t" ";" CONTENT "${CONTENT}")
+       STRING(REGEX REPLACE " " ";" CONTENT "${CONTENT}")
+
+       FOREACH(ITEM ${CONTENT})
+               IF(LASTITEM MATCHES "BLENDER_VERSION")
+                       MATH(EXPR BLENDER_VERSION_MAJOR "${ITEM} / 100")
+                       MATH(EXPR BLENDER_VERSION_MINOR "${ITEM} % 100")
+                       SET(BLENDER_VERSION "${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}")
+               ENDIF(LASTITEM MATCHES "BLENDER_VERSION")
+               
+               IF(LASTITEM MATCHES "BLENDER_SUBVERSION")
+                       SET(BLENDER_SUBVERSION ${ITEM})
+               ENDIF(LASTITEM MATCHES "BLENDER_SUBVERSION")
+               
+               IF(LASTITEM MATCHES "BLENDER_MINVERSION")
+                       MATH(EXPR BLENDER_MINVERSION_MAJOR "${ITEM} / 100")
+                       MATH(EXPR BLENDER_MINVERSION_MINOR "${ITEM} % 100")
+                       SET(BLENDER_MINVERSION "${BLENDER_MINVERSION_MAJOR}.${BLENDER_MINVERSION_MINOR}")
+               ENDIF(LASTITEM MATCHES "BLENDER_MINVERSION")
+               
+               IF(LASTITEM MATCHES "BLENDER_MINSUBVERSION")
+                       SET(BLENDER_MINSUBVERSION ${ITEM})
+               ENDIF(LASTITEM MATCHES "BLENDER_MINSUBVERSION")
+
+               SET(LASTITEM ${ITEM})
+       ENDFOREACH(ITEM ${CONTENT})
+       
+       MESSAGE(STATUS "Version major: ${BLENDER_VERSION_MAJOR}, Version minor: ${BLENDER_VERSION_MINOR}, Subversion: ${BLENDER_SUBVERSION}, Version: ${BLENDER_VERSION}")
+       MESSAGE(STATUS "Minversion major: ${BLENDER_MINVERSION_MAJOR}, Minversion minor: ${BLENDER_MINVERSION_MINOR}, MinSubversion: ${BLENDER_MINSUBVERSION}, Minversion: ${BLENDER_MINVERSION}")
+ENDMACRO(GET_BLENDER_VERSION)
index 39e0e3afe8e94e8120154a0d5596d6169a525e75..1069958f6f1a8ac4286e988b5842e92430f41a9a 100644 (file)
@@ -3,7 +3,7 @@ Encoding=UTF-8
 Name=Blender
 Comment=3D modeling, animation, rendering and post-production
 Exec=blender
-Icon=blender.png
+Icon=blender.svg
 Terminal=false
 Type=Application
 Categories=Graphics;3DGraphics;
index 36fd67c85c6378643a1143f3bde67b508d8474c3..e9e6c982fde656dc62ef6091cada1635d40e850b 100644 (file)
@@ -192,9 +192,31 @@ IF(WITH_INSTALL)
                ENDIF(WITH_GAMEENGINE AND WITH_PLAYER)
 
                INSTALL(
-                       DIRECTORY ${TARGETDIR}/.blender/
-                       DESTINATION ${BLENDERPATH}
-               )
+            FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
+            DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications
+        )
+               INSTALL(
+            FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/blender.svg
+            DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps
+        )
+               INSTALL(
+            DIRECTORY ${CMAKE_SOURCE_DIR}/release/text/
+            DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/blender
+            PATTERN ".svn" EXCLUDE
+        )
+               INSTALL(
+            DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts/
+            DESTINATION ${BLENDERPATH}/scripts
+            PATTERN ".svn" EXCLUDE
+        )
+               IF(WITH_INTERNATIONAL)
+                       INSTALL(
+               DIRECTORY ${CMAKE_SOURCE_DIR}/bin/.blender/locale/
+               DESTINATION ${BLENDERPATH}/datafiles/locale
+               PATTERN ".svn" EXCLUDE
+               )
+               ENDIF(WITH_INTERNATIONAL)
+        
                # end "make install"
     
        ENDIF(UNIX AND NOT APPLE)