if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} ) message( FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt." ) endif() project(ubuntu-sdk-ide C CXX) include(ExternalProject) include(ProcessorCount) function(ConcatStrings targetVar ) set(loc_val ${${targetVar}}) foreach(curr_substr ${ARGN}) set(loc_val "${loc_val}${curr_substr}") endforeach() set(${targetVar} ${loc_val} PARENT_SCOPE) endfunction() ProcessorCount(JOBS) if(NOT JOBS EQUAL 0) set(GENERATED_MAKE_FLAGS -j${JOBS}) endif() cmake_minimum_required(VERSION 2.8.9) set (ubuntu_sdk_VERSION_MAJOR 3) set (ubuntu_sdk_VERSION_MINOR 5) set (QT_VERSION "qt-everywhere-opensource-src-5.4.2") set (QT_KIT_PREFIX "${CMAKE_BINARY_DIR}/qt-api-build") set (QT_KIT_SOURCE_DIR "${QT_KIT_PREFIX}/qt-everywhere-opensource-src-ubuntu") set (QT_KIT_INSTALL_PREFIX "/usr/ubuntu-sdk-dev") ConcatStrings(QT_KIT_INSTALL_SCRIPT "make qmake_all " "&& make INSTALL_ROOT=${QT_KIT_PREFIX}/qt install " "&& make INSTALL_ROOT=${QT_KIT_PREFIX}/qt docs -j1 " "&& make INSTALL_ROOT=${QT_KIT_PREFIX}/qt install_docs -j1" ) ExternalProject_Add(${QT_VERSION}-api PREFIX "${QT_KIT_PREFIX}" SOURCE_DIR "${QT_KIT_SOURCE_DIR}" BINARY_DIR "${QT_KIT_PREFIX}/build" INSTALL_DIR "${QT_KIT_PREFIX}/qt" DOWNLOAD_COMMAND sh -c "cd ${QT_KIT_SOURCE_DIR} && ${CMAKE_SOURCE_DIR}/get_qt_sources.py" UPDATE_COMMAND sh -c "exit 0" #nothing to update PATCH_COMMAND sh -c "cp ${CMAKE_SOURCE_DIR}/desktop_kit_qt.pro ${QT_KIT_SOURCE_DIR}/qt.pro && cp ${CMAKE_SOURCE_DIR}/desktop_kit_configure ${QT_KIT_SOURCE_DIR}/configure" CONFIGURE_COMMAND sh -c "${QT_KIT_SOURCE_DIR}/configure -prefix ${QT_KIT_INSTALL_PREFIX} `cat ${CMAKE_SOURCE_DIR}/kit_config`" BUILD_COMMAND sh -c "make ${GENERATED_MAKE_FLAGS}" INSTALL_COMMAND sh -c "${QT_KIT_INSTALL_SCRIPT}" ) SET (EXTRAS_PREFIX "${CMAKE_BINARY_DIR}/qt-extras") ExternalProject_Add(${QT_VERSION}-extras DEPENDS ${QT_VERSION}-api PREFIX "${EXTRAS_PREFIX}" SOURCE_DIR "${EXTRAS_PREFIX}/ubuntu-sdk-qmake-extras" DOWNLOAD_COMMAND sh -c "bzr branch lp:ubuntu-sdk-qmake-extras ${EXTRAS_PREFIX}/ubuntu-sdk-qmake-extras -Ossl.cert_reqs=none --use-existing-dir" UPDATE_COMMAND sh -c "exit 0" #nothing to update CONFIGURE_COMMAND sh -c "exit 0" BUILD_COMMAND sh -c "cp ${EXTRAS_PREFIX}/ubuntu-sdk-qmake-extras/*.prf ${QT_KIT_PREFIX}/qt/usr/ubuntu-sdk-dev/mkspecs/features" INSTALL_COMMAND sh -c "cd ${CMAKE_BINARY_DIR} && mkdir ubuntu-sdk-ide && ${CMAKE_SOURCE_DIR}/create_sdk.sh" ) configure_file(${CMAKE_SOURCE_DIR}/ubuntu-sdk-shell.in ${QT_KIT_PREFIX}/qt/usr/ubuntu-sdk-dev/bin/ubuntu-sdk-shell @ONLY)