| 1 |
include(icecc.cmake) # this must be the first line! |
| 2 |
|
| 3 |
project(pyside) |
| 4 |
|
| 5 |
cmake_minimum_required(VERSION 2.6) |
| 6 |
set(CMAKE_CXX_FLAGS_RELEASE "-Wall -fvisibility=hidden -fvisibility-inlines-hidden -Os -finline-limit=600 -ffunction-sections -fomit-frame-pointer -fno-default-inline -fconserve-space -fno-enforce-eh-specs -fno-threadsafe-statics -fno-implicit-inline-templates -DNDEBUG -DBOOST_PYTHON_NO_PY_SIGNATURES -Wno-strict-aliasing") |
| 7 |
set(CMAKE_CXX_CFLAGS_DEBUG "-g -fno-common -Wall") |
| 8 |
|
| 9 |
|
| 10 |
#OS Flags |
| 11 |
if(CMAKE_HOST_UNIX) |
| 12 |
if(CMAKE_HOST_APPLE) |
| 13 |
if(NOT QT_INCLUDE_DIR) |
| 14 |
set(QT_INCLUDE_DIR "/Library/Frameworks") |
| 15 |
endif(NOT QT_INCLUDE_DIR) |
| 16 |
else(CMAKE_HOST_APPLE) |
| 17 |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,--gc-sections -Wl,-O1 -Wl,--hash-style=gnu") |
| 18 |
endif(CMAKE_HOST_APPLE) |
| 19 |
endif(CMAKE_HOST_UNIX) |
| 20 |
|
| 21 |
find_package(Boost 1.40.0 COMPONENTS python REQUIRED) |
| 22 |
find_package(PythonLibs REQUIRED) |
| 23 |
find_package(PythonInterp REQUIRED) |
| 24 |
find_package(Qt4 4.5.0 REQUIRED) |
| 25 |
|
| 26 |
set(BINDING_NAME PySide) |
| 27 |
set(BINDING_API_MAJOR_VERSION "0") |
| 28 |
set(BINDING_API_MINOR_VERSION "2") |
| 29 |
set(BINDING_API_MICRO_VERSION "4") |
| 30 |
set(BINDING_API_VERSION "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}") |
| 31 |
|
| 32 |
option(ENABLE_MAEMO5 "Enable Maemo5 support") |
| 33 |
|
| 34 |
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) |
| 35 |
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE) |
| 36 |
|
| 37 |
if (NOT CMAKE_BUILD_TYPE) |
| 38 |
set(CMAKE_BUILD_TYPE Release) |
| 39 |
endif (NOT CMAKE_BUILD_TYPE) |
| 40 |
|
| 41 |
include(${QT_USE_FILE}) |
| 42 |
if (${QTVERSION} VERSION_LESS 4.5.0) |
| 43 |
message(FATAL_ERROR "You need Qt4.5, found ${QTVERSION}.") |
| 44 |
endif (${QTVERSION} VERSION_LESS 4.5.0) |
| 45 |
|
| 46 |
set(BINDING_VERSION ${BINDING_API_VERSION}.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}) |
| 47 |
find_program(GENERATOR generatorrunner REQUIRED) |
| 48 |
|
| 49 |
if (NOT GENERATOR) |
| 50 |
message(FATAL_ERROR "You need to specify GENERATOR variable (-DGENERATOR=value)") |
| 51 |
endif (NOT GENERATOR) |
| 52 |
|
| 53 |
# uninstall target |
| 54 |
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake" |
| 55 |
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
| 56 |
IMMEDIATE @ONLY) |
| 57 |
add_custom_target(uninstall "${CMAKE_COMMAND}" |
| 58 |
-P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
| 59 |
|
| 60 |
add_custom_target(doc |
| 61 |
DEPENDS docqtcore docqtgui docqtnetwork docqtopengl docqtsql docqtsvg docqtwebkit docqtxml) |
| 62 |
|
| 63 |
# "make dist", in fact "make package_source" |
| 64 |
#set(CPACK_SOURCE_PACKAGE_FILE_NAME "pyside-${BINDING_API_VERSION}") |
| 65 |
#set(CPACK_SOURCE_GENERATOR TGZ) |
| 66 |
#set(CPACK_SOURCE_IGNORE_FILES "~$" ".svn" "debian/" "build/" ".swp$" "*.kdev4" ".git" ".kdev4") |
| 67 |
#include(CPack) |
| 68 |
|
| 69 |
set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-qt${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}+${BINDING_API_VERSION}) |
| 70 |
add_custom_target(dist |
| 71 |
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD |
| 72 |
| bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2 |
| 73 |
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) |
| 74 |
|
| 75 |
execute_process( |
| 76 |
COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; \\ |
| 77 |
print (sysconfig.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))" |
| 78 |
|
| 79 |
OUTPUT_VARIABLE SITE_PACKAGE |
| 80 |
OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 81 |
if (NOT SITE_PACKAGE) |
| 82 |
message(FATAL_ERROR "Could not detect Python module installation directory.") |
| 83 |
endif (NOT SITE_PACKAGE) |
| 84 |
|
| 85 |
set(GENERATOR_EXTRA_FLAGS --generatorSet=boostpython --disable-named-arg) |
| 86 |
|
| 87 |
if (DOC_ONLY) |
| 88 |
set(DOC_ONLY --documentation-only) |
| 89 |
endif (DOC_ONLY) |
| 90 |
|
| 91 |
enable_testing() |
| 92 |
|
| 93 |
set(TEST_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}") |
| 94 |
|
| 95 |
# project directories |
| 96 |
add_subdirectory(data) |
| 97 |
add_subdirectory(base) |
| 98 |
add_subdirectory(${BINDING_NAME}) |
| 99 |
add_subdirectory(doc) |
| 100 |
add_subdirectory(tests) |