Browse Source

Installation commands in CMake, development PKGBUILD.

vectorfields
Vladimír Vondruš 16 years ago
parent
commit
84215bc4e2
  1. 10
      CMakeLists.txt
  2. 27
      PKGBUILD
  3. 1
      modules/CMakeLists.txt
  4. 42
      modules/FindMagnum.cmake
  5. 9
      modules/MagnumMacros.cmake
  6. 2
      src/CMakeLists.txt

10
CMakeLists.txt

@ -19,10 +19,20 @@ endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Magnum_SOURCE_DIR}/modules/") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Magnum_SOURCE_DIR}/modules/")
include(MagnumMacros) include(MagnumMacros)
set_parent_scope(MAGNUM_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set_parent_scope(MAGNUM_LIBRARY Magnum)
include(FindMagnum)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic")
add_subdirectory(modules)
add_subdirectory(src) add_subdirectory(src)
install(DIRECTORY src/ DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}
FILES_MATCHING PATTERN "*.h"
PATTERN "*/Test" EXCLUDE)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
if(BUILD_EXAMPLES) if(BUILD_EXAMPLES)

27
PKGBUILD

@ -0,0 +1,27 @@
# Author: mosra <mosra@centrum.cz>
pkgname=magnum
pkgver=dev
pkgrel=1
pkgdesc="OpenGL 3 graphics engine"
arch=('i686' 'x86_64')
url="http://mosra.cz/blog/"
license=('LGPLv3')
makedepends=('cmake' 'mesa' 'glew')
optdepends=('qt')
options=(!strip)
build() {
mkdir -p "$startdir/build"
cd "$startdir/build/"
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_TESTS=TRUE
make
}
package() {
cd "$startdir/build"
make DESTDIR="$pkgdir/" install
}

1
modules/CMakeLists.txt

@ -0,0 +1 @@
install(FILES FindMagnum.cmake MagnumMacros.cmake DESTINATION ${MAGNUM_CMAKE_MODULE_INSTALL_DIR})

42
modules/FindMagnum.cmake

@ -0,0 +1,42 @@
# Find Magnum - Magnum handling module for CMake
#
# This module defines:
#
# MAGNUM_FOUND - True if Magnum library is found
# MAGNUM_INCLUDE_DIR - Include dir for Magnum
# MAGNUM_LIBRARY - Magnum library
#
# MAGNUM_LIBRARY_INSTALL_DIR - Library installation directory
# MAGNUM_CMAKE_MODULE_INSTALL_DIR - Installation dir for CMake modules
# MAGNUM_INCLUDE_INSTALL_DIR - Include installation directory for headers
#
include(MagnumMacros)
if (MAGNUM_INCLUDE_DIR AND MAGNUM_LIBRARY)
# Already in cache
set(MAGNUM_FOUND TRUE)
else()
# Libraries
find_library(MAGNUM_LIBRARY Magnum)
# Paths
find_path(MAGNUM_INCLUDE_DIR
NAMES Magnum.h
PATH_SUFFIXES Magnum
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args("Magnum" DEFAULT_MSG
MAGNUM_INCLUDE_DIR
MAGNUM_LIBRARY
)
endif()
# Installation dirs
set_parent_scope(MAGNUM_LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
set_parent_scope(MAGNUM_CMAKE_MODULE_INSTALL_DIR ${CMAKE_ROOT}/Modules)
set_parent_scope(MAGNUM_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/Magnum)

9
modules/MagnumMacros.cmake

@ -1,3 +1,12 @@
macro(set_parent_scope name)
set(${name} ${ARGN})
# Set to parent scope only if parent exists
if(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
set(${name} ${${name}} PARENT_SCOPE)
endif()
endmacro()
if(QT4_FOUND) if(QT4_FOUND)
function(magnum_add_test test_name moc_header source_file) function(magnum_add_test test_name moc_header source_file)
foreach(library ${ARGN}) foreach(library ${ARGN})

2
src/CMakeLists.txt

@ -18,6 +18,8 @@ set(Magnum_SRCS
add_library(Magnum SHARED ${Magnum_SRCS}) add_library(Magnum SHARED ${Magnum_SRCS})
target_link_libraries(Magnum ${OPENGL_gl_LIBRARY} ${GLEW_LIBRARY}) target_link_libraries(Magnum ${OPENGL_gl_LIBRARY} ${GLEW_LIBRARY})
install(TARGETS Magnum DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR})
if(BUILD_TESTS) if(BUILD_TESTS)
enable_testing() enable_testing()
add_subdirectory(Test) add_subdirectory(Test)

Loading…
Cancel
Save