Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Depends {
name: "boost"
submodules: [ "threads", "system", "filesystem" ]
}
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Boost COMPONENTS threads system filesystem)${Boost_LIBRARIES}
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/Model)
foreach(_file ${ODB_MODELS})
string(REPLACE ".h" "-odb.cxx" ODB_GENERATED_FILES ${_file})
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ODB_GENERATED_FILES}
COMMAND odb -d sqlite --profile qt --generate-query --generate-schema
-o ${CMAKE_CURRENT_BINARY_DIR}/include/Model
${CMAKE_CURRENT_SOURCE_DIR}/${_file}
-I${QT_INCLUDE_DIR}/QtCore
-I${QT_INCLUDE_DIR}
DEPENDS ${_file}
COMMENT "ODB'ing ${_file}..."
)
list(APPEND MOC_SOURCES ${ODB_GENERATED_FILES})
endforeach()
set( MYPROJECT_LANG_FILES lang.ts )
qt4_create_translation(MYPROJECT_LANG_SOURCE ${MYPROJECT_LANG_FILES})
set(MYPROJECT_RESOURCES_FILES resources.qrc)
qt4_add_resources(MYPROJECT_RESOURCES ${MYPROJECT_RESOURCES_FILES})
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(projectname ${Boost_LIBRARIES})
Product {
files: [ "a.cpp", "b.ts", "c.qrc" ]
}
add_custom_command(
# Перечисление результирующих файлов (в данном случаи один)
OUTPUT "${_current_file_name}"
# Выполняемая команда
COMMAND icotool
# Её аргументы
ARGS -x --icon -i ${_current_index} -o ${_current_outfile} filename.ico
# Перечисление исходных файлов, от которых зависит результат
# выполнения команды (в данном случаи тоже один)
DEPENDS filename.ico
)
COMMAND odb -d sqlite --profile qt --generate-query --generate-schema
-o ${CMAKE_CURRENT_BINARY_DIR}/include/Model
${CMAKE_CURRENT_SOURCE_DIR}/${_file}
-I${QT_INCLUDE_DIR}/QtCore
-I${QT_INCLUDE_DIR}
add_custom_command(
OUTPUT ${file}
COMMAND program)
cmake_minimum_required (VERSION 2.8)
set(APPLICATION_NAME "Test")
project(${APPLICATION_NAME})
set(CMAKE_USE_RELATIVE_PATHS true)
if(MSVC)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "/W3 /MP")
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wall -pedantic")
endif()
include_directories(./include)
file(GLOB_RECURSE ${APPLICATION_NAME}_HEADERS "include/*.h")
file(GLOB_RECURSE ${APPLICATION_NAME}_SOURCE "src/*.cpp")
set(PROJECT_FILES)
list(APPEND PROJECT_FILES ${${APPLICATION_NAME}_HEADERS} ${${APPLICATION_NAME}_SOURCE})
add_executable(${APPLICATION_NAME} ${PROJECT_FILES})
target_link_libraries(${APPLICATION_NAME})
set_target_properties(${APPLICATION_NAME} PROPERTIES DEBUG_POSTFIX "_d")
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /MP")
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic")
endif()
import qbs.base 1.0
CppApplication {
name: "HelloWorld"
files: "main.cpp"
}
qbs detect-toolchains
cd в/папку/с/проектомqbs
qbs build release profile:<имя профиля, связанного с тулчейном>
qbs config preferences.qbsPath /tmp/qbs/share/qbs/
qbs config preferences.pluginsPath /tmp/qbs/plugins/
CROSS_COMPILE=arm-arm926-linux-gnueabi- qbs detect-toolchains
Скопировал настройку кросскомпилятора в буфер обмена. Настройка хранится в ~/.config/QtProject/qbs.confqbs detect-toolchains # здесь cross gcc подменяется на host gcc
qbs setup-qt /usr/bin/qmake-qt4 qt4
qbs setup-qt /opt/arm-glibc-toolchain-arm926/sys-root/usr/bin/qmake qt5
Вставляю в qbs.conf настройку кросскомпилятора заменяя gcc на gcc-arm.qbs profile:qt4
qbs profile:qt5
qbs config profiles.qt5.baseProfile gcc-arm
qbs profile:qt5
C:\Dev\git\qbs\bin>qbs detect-toolchains
Detecting MSVC toolchains...
MSVC detected:
version 2012
installed in C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
Setting up profile 'MSVC2012'.
Platform 'i686-w64-mingw32' detected in 'C:/Dev/mingw/mingw-4.7-x86_32'.
C:\Dev\git\qbs\bin>qbs config --list profiles | grep toolchain
profiles.MSVC2012.cpp.toolchainInstallPath: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
profiles.MSVC2012.qbs.toolchain: msvc
profiles.i686-w64-mingw32.cpp.toolchainInstallPath: C:/Dev/mingw/mingw-4.7-x86_32/bin
profiles.i686-w64-mingw32.qbs.toolchain: mingw
C:\Dev\git\qbs\bin>where g++
C:\Dev\mingw\mingw-4.7-x86_32\bin\g++.exe
C:\Dev\mingw\mingw-4.7-x86_64\bin\g++.exe
Вышел QBS 1.0.0