diff --git a/CMakeLists.txt b/CMakeLists.txt index 85faba047362759a890fefe2ae472bcb5d430640..d936c1c657187bafba5eece50bd4b627e9d9f7ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,14 +26,35 @@ project(SkywardHub) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +if (WIN32) + # Disable MSVC C standard library deprecation warnings + add_compile_definitions( + _CRT_SECURE_NO_WARNINGS + _CRT_NONSTDC_NO_DEPRECATE + _SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS + ) + if (MSVC) + add_compile_options( + "/wd4068;" # disable "unknown pragma 'mark'" warnings + ) + endif() +endif() + # MAvLink Skyward library add_subdirectory(libs/mavlink-skyward-lib EXCLUDE_FROM_ALL) # Backward-cpp set(MINGW_MSVCR_LIBRARY msvcrt CACHE STRING "Mingw MSVC runtime import library") # Fix dependency on msvcr90 -add_subdirectory(libs/backward-cpp) +add_subdirectory(libs/backward-cpp SYSTEM) # Qt5 and its modules +if (WIN32) + set(QT_BASE_DIR "C:/Qt/5.15.2/msvc2019_64") +else() + set(QT_BASE_DIR "/opt/qt/5.15.2/gcc_64") +endif() + +list(APPEND CMAKE_PREFIX_PATH ${QT_BASE_DIR}/lib/cmake/) find_package(Qt5 REQUIRED COMPONENTS Widgets SerialPort PrintSupport 3DCore 3DExtras 3DRender 3DInput) add_executable(skywardhub @@ -130,7 +151,7 @@ if(DEFINED ENV{WIN_DEPLOY_QT}) message("-- Using windeployqt.exe from $ENV{WIN_DEPLOY_QT}") add_custom_command( TARGET skywardhub POST_BUILD - COMMAND $ENV{WIN_DEPLOY_QT} skywardhub.exe + COMMAND $ENV{WIN_DEPLOY_QT} --no-translations --no-angle --no-opengl-sw --no-quick-import --no-compiler-runtime --verbose 1 skywardhub.exe WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Running windeployqt.exe..." ) diff --git a/sbs b/sbs index 29a159156efb637763f2a670755b6d028e414d4a..c5f658e034298bbef1b883fe11427fd10b9970d6 100755 --- a/sbs +++ b/sbs @@ -85,13 +85,12 @@ configure() { ohai "Configure" declare -a defs=(-DCMAKE_EXPORT_COMPILE_COMMANDS=ON) - defs+=(-DCMAKE_CXX_FLAGS=-fdiagnostics-color=always -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH) [ "$found_ccache" = true ] && defs+=(-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache) [ "$config_debug" = true ] && defs+=(-DCMAKE_BUILD_TYPE=Debug) || defs+=(-DCMAKE_BUILD_TYPE=Release) [ "$config_verbose" = true ] && defs+=(-DCMAKE_VERBOSE_MAKEFILE=ON) declare gen - [ "$found_ninja" = true ] && gen=-GNinja || gen=-G"Unix Makefiles" + [ "$found_ninja" = true ] && gen=-GNinja cmake -B"$build_dir" "${defs[@]}" "$gen" "$source_dir" || return @@ -124,7 +123,6 @@ check_configured() { build() { declare build_dir="$1" - declare target="$2" check_configured "$build_dir" || return @@ -133,13 +131,13 @@ build() { declare -a opts get_build_opts opts - cmake --build "$build_dir" "${opts[@]}" --target "$target" + cmake --build "$build_dir" "${opts[@]}" } build_all() { declare build_dir="$build_dir" - build "$build_dir" all + build "$build_dir" } clean() { @@ -148,13 +146,6 @@ clean() { ohai "Clean ($build_desc)" - if [ -f "$build_dir/$CMAKE_FILENAME" ]; then - declare -a opts - get_build_opts opts - - cmake --build "$build_dir" "${opts[@]}" --target clean - fi - echo "Removing build folder..." rm -rf "$build_dir" } @@ -315,7 +306,6 @@ EOF } CMAKE_FILENAME="CMakeCache.txt" -CMAKE_PREFIX_PATH="/opt/qt/5.15.2/gcc_64/lib/cmake/" DEBUG_FILENAME=".sbsdebug" VERBOSE_FILENAME=".sbsverbose" BUILD_DIRNAME="build"