Update dockerfile and devcontainer.json to execute poststart.sh and forward x11
This commit is contained in:
@@ -16,15 +16,26 @@ RUN apk update && \
|
||||
libxrandr \
|
||||
libxcursor \
|
||||
libxi \
|
||||
libx11 \
|
||||
libx11-dev \
|
||||
libxcb \
|
||||
libxcb-dev \
|
||||
libxkbcommon \
|
||||
libxkbcommon-dev \
|
||||
xcb-util-dev \
|
||||
xcb-util-image-dev \
|
||||
xcb-util-keysyms-dev \
|
||||
xcb-util-renderutil-dev \
|
||||
xcb-util-wm-dev \
|
||||
xcb-util-cursor-dev \
|
||||
mesa-dev \
|
||||
freetype-dev \
|
||||
fontconfig-dev \
|
||||
dbus-dev \
|
||||
libusb
|
||||
|
||||
# Set environment variables for Qt and Android SDK
|
||||
ENV QT_VERSION=6.8.0
|
||||
ENV QT_INSTALL_PATH=/opt/qt-${QT_VERSION}
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
||||
ENV ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
ENV PATH="${QT_INSTALL_PATH}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/emulator:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/tools/bin:${JAVA_HOME}/bin:$PATH"
|
||||
|
||||
# Download and install Qt 6.8.0 from the official Qt website
|
||||
RUN mkdir -p ${QT_INSTALL_PATH} && \
|
||||
@@ -56,6 +67,10 @@ RUN mkdir -p ${QT_INSTALL_PATH} && \
|
||||
make install && \
|
||||
rm -rf ${QT_INSTALL_PATH}/qt-everywhere-src-${QT_VERSION}
|
||||
|
||||
|
||||
ENV ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
ENV PATH="${QT_INSTALL_PATH}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/emulator:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/tools/bin:${JAVA_HOME}/bin:$PATH"
|
||||
|
||||
# Install Android SDK Command Line Tools
|
||||
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
|
||||
curl -o sdk-tools-linux.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip && \
|
||||
@@ -74,6 +89,13 @@ RUN sdkmanager --list
|
||||
# Set working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Set environment variables for Qt and Android SDK
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
||||
ENV QT_QPA_PLATFORM=xcb
|
||||
ENV QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt6/plugins/platforms
|
||||
ENV LD_LIBRARY_PATH=/opt/qt-6.8.0
|
||||
ENV QT_DEBUG_PLUGINS=1
|
||||
|
||||
# Expose ADB debugging port
|
||||
EXPOSE 5555
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": "."
|
||||
},
|
||||
"postStartCommand": "./.devcontainer/poststart.sh",
|
||||
"runArgs": [
|
||||
"-e", "DISPLAY=${env:DISPLAY}",
|
||||
"-v", "/tmp/.X11-unix:/tmp/.X11-unix"
|
||||
],
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {
|
||||
@@ -14,7 +19,8 @@
|
||||
"ms-vscode.cpptools",
|
||||
"ms-vscode.makefile-tools",
|
||||
"androidtool.android",
|
||||
"ms-azuretools.vscode-docker"
|
||||
"ms-azuretools.vscode-docker",
|
||||
"bbenoist.QML"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
2
.devcontainer/poststart.sh
Executable file
2
.devcontainer/poststart.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
echo "Welcome"
|
||||
81
WeatherRoutes/CMakeLists.txt
Normal file
81
WeatherRoutes/CMakeLists.txt
Normal file
@@ -0,0 +1,81 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(WeatherRoutes VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
# Define versioning information
|
||||
set(VERSION_CODE 1) # Change this to your desired version code
|
||||
set(VERSION_NAME "0.1") # Your version name
|
||||
|
||||
# Include this in the Android section
|
||||
set(ANDROID_PACKAGE_NAME "com.example.weatherroutes")
|
||||
set(ANDROID_VERSION_CODE ${VERSION_CODE})
|
||||
set(ANDROID_VERSION_NAME ${VERSION_NAME})
|
||||
|
||||
set(CMAKE_ANDROID_MANIFEST "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
|
||||
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(RESOURCE_FILES resources.qrc)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Quick)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Location)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Positioning)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Network)
|
||||
|
||||
qt_add_resources(RESOURCES_RCC "${RESOURCE_FILES}")
|
||||
|
||||
qt_add_executable(appWeatherRoutes
|
||||
main.cpp
|
||||
${RESOURCES_RCC}
|
||||
)
|
||||
|
||||
qt6_add_qml_module(appWeatherRoutes
|
||||
URI WeatherRoutes
|
||||
VERSION 1.0
|
||||
QML_FILES
|
||||
Main.qml
|
||||
SOURCES
|
||||
QML_FILES
|
||||
QML_FILES qml/WaypointData.qml
|
||||
QML_FILES qml/WeatherDetailsView.qml
|
||||
QML_FILES qml/CustomInputField.qml
|
||||
QML_FILES qml/MapView.qml
|
||||
QML_FILES
|
||||
QML_FILES qml/HomeScreen.qml
|
||||
SOURCES mvc/data/waypoint.h mvc/data/waypoint.cpp
|
||||
SOURCES mvc/data/mapdata.cpp mvc/data/mapdata.h
|
||||
SOURCES mvc/model/mapdatamodel.h mvc/model/mapdatamodel.cpp
|
||||
SOURCES mvc/data/weatherdetailsdata.h mvc/data/weatherdetailsdata.cpp
|
||||
SOURCES mvc/enums/weatherstatus.h
|
||||
SOURCES mvc/data/weatherdata.h mvc/data/weatherdata.cpp
|
||||
SOURCES mvc/controller/weathercontroller.h mvc/controller/weathercontroller.cpp
|
||||
SOURCES mvc/controller/networkmanager.h mvc/controller/networkmanager.cpp
|
||||
SOURCES mvc/controller/stylecontroller.h mvc/controller/stylecontroller.cpp
|
||||
)
|
||||
|
||||
target_include_directories(appWeatherRoutes
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mvc
|
||||
)
|
||||
|
||||
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||
# If you are developing for iOS or macOS you should consider setting an
|
||||
# explicit, fixed bundle identifier manually though.
|
||||
set_target_properties(appWeatherRoutes PROPERTIES
|
||||
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appWeatherRoutes
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||
MACOSX_BUNDLE TRUE
|
||||
WIN32_EXECUTABLE TRUE
|
||||
)
|
||||
target_link_libraries(appWeatherRoutes PRIVATE Qt6::Quick Qt6::Location Qt6::Positioning)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS appWeatherRoutes
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
Reference in New Issue
Block a user