cmake buildfiles Cleanup / Refactor, no functional changes.

Move away from using hardcoded ${target} when calling install() in cmake
This commit is contained in:
Martijn Berger 2014-11-08 11:32:32 +01:00
parent 5604a3d31d
commit 8f8321bfdb
2 changed files with 60 additions and 54 deletions

@ -116,7 +116,6 @@ set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests CACHE INTERNAL "" FORCE)
get_blender_version()
# Blender internal features
option(WITH_BLENDER "Build blender (disable to build only the blender player)" ON)
mark_as_advanced(WITH_BLENDER)
@ -364,6 +363,23 @@ if(WITH_GLEW_ES AND WITH_SYSTEM_GLEW)
set(WITH_SYSTEM_GLEW OFF)
endif()
if(MSVC)
getDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
set(CPACK_INSTALL_PREFIX ${CMAKE_GENERIC_PROGRAM_FILES}/${})
endif()
# By default we want to install to the directory we are compiling our executables
# unless specified otherwise, which we currently do not allow
if(MSVC)
set(BLENDER_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
elseif(APPLE)
set(BLENDER_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
else()
set(BLENDER_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH})
endif()
set(CMAKE_INSTALL_PREFIX ${BLENDER_INSTALL_PREFIX} CACHE INTERNAL "")
# Apple
if(APPLE)

@ -236,16 +236,6 @@ endif()
# Post build steps for bundling/packaging.
if(MSVC_IDE)
# ${CMAKE_CFG_INTDIR} should replace \${BUILD_TYPE} when using add_command
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
elseif(APPLE)
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
else()
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH})
endif()
set(BLENDER_TEXT_FILES
${CMAKE_SOURCE_DIR}/release/text/GPL-license.txt
${CMAKE_SOURCE_DIR}/release/text/Python-license.txt
@ -267,7 +257,7 @@ endif()
if(UNIX AND NOT APPLE)
if(WITH_INSTALL_PORTABLE)
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION})
else()
if(WITH_PYTHON_MODULE)
set(TARGETDIR_VER ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${BLENDER_VERSION})
@ -277,13 +267,13 @@ if(UNIX AND NOT APPLE)
endif()
elseif(WIN32)
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION})
elseif(APPLE)
if(WITH_PYTHON_MODULE)
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION})
else()
set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/Resources/${BLENDER_VERSION})
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/blender.app/Contents/Resources/${BLENDER_VERSION})
endif()
endif()
@ -406,8 +396,8 @@ if(UNIX AND NOT APPLE)
"
execute_process(COMMAND
${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py
${TARGETDIR}/blender
${TARGETDIR}/blender.1)
${CMAKE_INSTALL_PREFIX}/blender
${CMAKE_INSTALL_PREFIX}/blender.1)
"
)
endif()
@ -418,8 +408,8 @@ if(UNIX AND NOT APPLE)
# pass
else()
install(
FILES ${TARGETDIR}/blender.1
DESTINATION ${TARGETDIR}
FILES ${CMAKE_INSTALL_PREFIX}/blender.1
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
endif()
@ -427,18 +417,18 @@ if(UNIX AND NOT APPLE)
FILES
${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/apps/blender.svg
DESTINATION ${TARGETDIR}
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
install(
PROGRAMS
${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
DESTINATION ${TARGETDIR}
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
install(
FILES ${BLENDER_TEXT_FILES}
DESTINATION ${TARGETDIR}
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
else()
@ -451,12 +441,12 @@ if(UNIX AND NOT APPLE)
)
else()
install(
PROGRAMS ${TARGETDIR}/blender
PROGRAMS ${CMAKE_INSTALL_PREFIX}/blender
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
)
# manpage only with 'blender' binary
install(
FILES ${TARGETDIR}/blender.1
FILES ${CMAKE_INSTALL_PREFIX}/blender.1
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
)
endif()
@ -464,7 +454,7 @@ if(UNIX AND NOT APPLE)
if(WITH_GAMEENGINE AND WITH_PLAYER)
install(
PROGRAMS ${TARGETDIR}/blenderplayer
PROGRAMS ${CMAKE_INSTALL_PREFIX}/blenderplayer
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
)
endif()
@ -536,7 +526,7 @@ if(UNIX AND NOT APPLE)
)
# # doesnt work, todo
# install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
# install(CODE "execute_process(COMMAND find ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
if(WITH_PYTHON_INSTALL_NUMPY)
# Install to the same directory as the source, so debian-like
@ -611,7 +601,7 @@ elseif(WIN32)
install(
FILES ${BLENDER_TEXT_FILES}
DESTINATION ${TARGETDIR}
DESTINATION "."
)
if(WITH_PYTHON)
@ -619,13 +609,13 @@ elseif(WIN32)
install(
FILES ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.dll ${LIBDIR}/python/lib/sqlite3.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
)
install(
FILES ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}_d.dll ${LIBDIR}/python/lib/sqlite3_d.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
CONFIGURATIONS Debug
)
@ -678,7 +668,7 @@ elseif(WIN32)
# doesnt work, todo
# install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
# install(CODE "execute_process(COMMAND find ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
endif()
unset(_PYTHON_VERSION_NO_DOTS)
@ -687,11 +677,11 @@ elseif(WIN32)
# EGL Runtime Components
if(WITH_GL_EGL)
if(WIN32)
install(FILES "${OPENGLES_DLL}" DESTINATION ${TARGETDIR})
install(FILES "${OPENGLES_EGL_DLL}" DESTINATION ${TARGETDIR})
install(FILES "${OPENGLES_DLL}" DESTINATION ".")
install(FILES "${OPENGLES_EGL_DLL}" DESTINATION ".")
if(WITH_GL_ANGLE)
install(FILES "${D3DCOMPILER_DLL}" DESTINATION ${TARGETDIR})
install(FILES "${D3DCOMPILER_DLL}" DESTINATION ".")
endif()
endif()
endif()
@ -699,14 +689,14 @@ elseif(WIN32)
if(MSVC)
install(
FILES ${LIBDIR}/pthreads/lib/pthreadVC2.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
else()
#MinGW64 comes with own version. For portable builds it will probaly have to be copied to work
if(NOT WITH_MINGW64)
install(
FILES ${LIBDIR}/pthreads/lib/pthreadGC2.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
elseif(WITH_MINGW64)
install(
@ -714,14 +704,14 @@ elseif(WIN32)
${LIBDIR}/binaries/libgcc_s_sjlj-1.dll
${LIBDIR}/binaries/libwinpthread-1.dll
${LIBDIR}/binaries/libstdc++-6.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
if(WITH_OPENMP)
install(
FILES
${LIBDIR}/binaries/libgomp-1.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
endif()
@ -738,7 +728,7 @@ elseif(WIN32)
${LIBDIR}/ffmpeg/lib/swscale-2.dll
${LIBDIR}/ffmpeg/lib/swresample-0.dll
${LIBDIR}/ffmpeg/lib/xvidcore.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
else()
install(
@ -748,7 +738,7 @@ elseif(WIN32)
${LIBDIR}/ffmpeg/lib/avdevice-55.dll
${LIBDIR}/ffmpeg/lib/avutil-52.dll
${LIBDIR}/ffmpeg/lib/swscale-2.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
endif()
@ -756,7 +746,7 @@ elseif(WIN32)
if(WITH_CODEC_SNDFILE)
install(
FILES ${LIBDIR}/sndfile/lib/libsndfile-1.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
@ -765,27 +755,27 @@ elseif(WIN32)
FILES
${LIBDIR}/openal/lib/OpenAL32.dll
${LIBDIR}/openal/lib/wrap_oal.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
if(WITH_SDL)
install(
FILES ${LIBDIR}/sdl/lib/SDL.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
if(NOT CMAKE_CL_64)
install(
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
install( # x86 builds can run on x64 Windows, so this is required at all times
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb64.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
if(WITH_OPENCOLORIO)
@ -794,13 +784,13 @@ elseif(WIN32)
install(
FILES
${OCIOBIN}/OpenColorIO.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
else()
install(
FILES
${OCIOBIN}/libOpenColorIO.dll
DESTINATION ${TARGETDIR}
DESTINATION "."
)
endif()
endif()
@ -839,30 +829,30 @@ elseif(APPLE)
# install release and app files
install(
FILES ${BLENDER_TEXT_FILES}
DESTINATION ${TARGETDIR}
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
install(
FILES ${OSX_APP_SOURCEDIR}/Contents/PkgInfo
DESTINATION ${TARGETDIR}/blender.app/Contents
DESTINATION ${CMAKE_INSTALL_PREFIX}/blender.app/Contents
)
install_dir(
${OSX_APP_SOURCEDIR}/Contents/Resources
\${TARGETDIR}/blender.app/Contents/
\${CMAKE_INSTALL_PREFIX}/blender.app/Contents/
)
if(WITH_OPENMP AND CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS '3.4')
install(
FILES ${LIBDIR}/openmp/lib/libiomp5.dylib
DESTINATION ${TARGETDIR}/blender.app/Contents/MacOS
DESTINATION ${CMAKE_INSTALL_PREFIX}/blender.app/Contents/MacOS
)
endif()
if(WITH_LLVM AND NOT LLVM_STATIC)
install(
FILES ${LIBDIR}/llvm/lib/libLLVM-3.4.dylib
DESTINATION ${TARGETDIR}/blender.app/Contents/MacOS
DESTINATION ${CMAKE_INSTALL_PREFIX}/blender.app/Contents/MacOS
)
endif()
@ -905,7 +895,7 @@ elseif(APPLE)
if(WITH_GAMEENGINE AND WITH_PLAYER)
set(OSX_APP_PLAYER_SOURCEDIR ${CMAKE_SOURCE_DIR}/release/darwin/blenderplayer.app)
set(PLAYER_SOURCEINFO ${OSX_APP_PLAYER_SOURCEDIR}/Contents/Info.plist)
set(PLAYER_TARGETDIR_VER ${TARGETDIR}/blenderplayer.app/Contents/Resources/${BLENDER_VERSION})
set(PLAYER_TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/blenderplayer.app/Contents/Resources/${BLENDER_VERSION})
# important to make a clean install each time else old scripts get loaded.
@ -916,12 +906,12 @@ elseif(APPLE)
install(
FILES ${OSX_APP_PLAYER_SOURCEDIR}/Contents/PkgInfo
DESTINATION ${TARGETDIR}/blenderplayer.app/Contents
DESTINATION ${CMAKE_INSTALL_PREFIX}/blenderplayer.app/Contents
)
install_dir(
${OSX_APP_PLAYER_SOURCEDIR}/Contents/Resources
\${TARGETDIR}/blenderplayer.app/Contents/
\${CMAKE_INSTALL_PREFIX}/blenderplayer.app/Contents/
)
# python