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 \
|
libxrandr \
|
||||||
libxcursor \
|
libxcursor \
|
||||||
libxi \
|
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 \
|
mesa-dev \
|
||||||
|
freetype-dev \
|
||||||
|
fontconfig-dev \
|
||||||
|
dbus-dev \
|
||||||
libusb
|
libusb
|
||||||
|
|
||||||
# Set environment variables for Qt and Android SDK
|
|
||||||
ENV QT_VERSION=6.8.0
|
ENV QT_VERSION=6.8.0
|
||||||
ENV QT_INSTALL_PATH=/opt/qt-${QT_VERSION}
|
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
|
# Download and install Qt 6.8.0 from the official Qt website
|
||||||
RUN mkdir -p ${QT_INSTALL_PATH} && \
|
RUN mkdir -p ${QT_INSTALL_PATH} && \
|
||||||
@@ -56,6 +67,10 @@ RUN mkdir -p ${QT_INSTALL_PATH} && \
|
|||||||
make install && \
|
make install && \
|
||||||
rm -rf ${QT_INSTALL_PATH}/qt-everywhere-src-${QT_VERSION}
|
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
|
# Install Android SDK Command Line Tools
|
||||||
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-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 && \
|
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
|
# Set working directory
|
||||||
WORKDIR /workspace
|
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 ADB debugging port
|
||||||
EXPOSE 5555
|
EXPOSE 5555
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
"dockerfile": "Dockerfile",
|
"dockerfile": "Dockerfile",
|
||||||
"context": "."
|
"context": "."
|
||||||
},
|
},
|
||||||
|
"postStartCommand": "./.devcontainer/poststart.sh",
|
||||||
|
"runArgs": [
|
||||||
|
"-e", "DISPLAY=${env:DISPLAY}",
|
||||||
|
"-v", "/tmp/.X11-unix:/tmp/.X11-unix"
|
||||||
|
],
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -14,7 +19,8 @@
|
|||||||
"ms-vscode.cpptools",
|
"ms-vscode.cpptools",
|
||||||
"ms-vscode.makefile-tools",
|
"ms-vscode.makefile-tools",
|
||||||
"androidtool.android",
|
"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