Skip to content

Commit 696d8d5

Browse files
authored
Merge pull request #575 from alicevision/build/qtalicevision
Update Docker/CMake files to build the qtAliceVision plugin
2 parents 9612c37 + 13f3715 commit 696d8d5

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

CMakeLists.txt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ set(QT_DIR "$ENV{QT_DIR}" CACHE STRING "Qt root directory")
1010

1111
option(MR_BUILD_QTOIIO "Enable building of QtOIIO plugin" ON)
1212
option(MR_BUILD_QMLALEMBIC "Enable building of qmlAlembic plugin" ON)
13+
option(MR_BUILD_QTALICEVISION "Enable building of qtAliceVision plugin" ON)
1314

1415
if(CMAKE_BUILD_TYPE MATCHES Release)
1516
message(STATUS "Force CMAKE_INSTALL_DO_STRIP in Release")
@@ -30,7 +31,6 @@ set(ALEMBIC_CMAKE_FLAGS
3031
-DAlembic_DIR:PATH=${ALICEVISION_ROOT}/lib64/cmake/Alembic
3132
-DILMBASE_ROOT=${ALICEVISION_ROOT}
3233
)
33-
set(QT_CMAKE_FLAGS -DCMAKE_PREFIX_PATH=${QT_DIR})
3434

3535

3636
include(ExternalProject)
@@ -44,7 +44,7 @@ include(GNUInstallDirs)
4444
# message(STATUS "QT_CMAKE_FLAGS: ${QT_CMAKE_FLAGS}")
4545

4646
if(MR_BUILD_QTOIIO)
47-
set(QTOIIO_TARGET qtoiio)
47+
set(QTOIIO_TARGET qtOIIO)
4848
ExternalProject_Add(${QTOIIO_TARGET}
4949
GIT_REPOSITORY https://github.com/alicevision/QtOIIO
5050
GIT_TAG develop
@@ -54,13 +54,13 @@ ExternalProject_Add(${QTOIIO_TARGET}
5454
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qtoiio
5555
BINARY_DIR ${BUILD_DIR}/qtoiio_build
5656
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
57-
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${OIIO_CMAKE_FLAGS} ${QT_CMAKE_FLAGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
57+
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${OIIO_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
5858
)
5959
endif()
6060

6161

6262
if(MR_BUILD_QMLALEMBIC)
63-
set(QMLALEMBIC_TARGET qmlalembic)
63+
set(QMLALEMBIC_TARGET qmlAlembic)
6464
ExternalProject_Add(${QMLALEMBIC_TARGET}
6565
GIT_REPOSITORY https://github.com/alicevision/qmlAlembic
6666
GIT_TAG develop
@@ -70,7 +70,22 @@ ExternalProject_Add(${QMLALEMBIC_TARGET}
7070
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qmlalembic
7171
BINARY_DIR ${BUILD_DIR}/qmlalembic_build
7272
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
73-
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} ${QT_CMAKE_FLAGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
73+
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
74+
)
75+
endif()
76+
77+
if(MR_BUILD_QTALICEVISION)
78+
set(QTALICEVISION_TARGET qtAliceVision)
79+
ExternalProject_Add(${QTALICEVISION_TARGET}
80+
GIT_REPOSITORY https://github.com/alicevision/qtAliceVision
81+
GIT_TAG develop
82+
PREFIX ${BUILD_DIR}
83+
BUILD_IN_SOURCE 0
84+
BUILD_ALWAYS 0
85+
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qtAliceVision
86+
BINARY_DIR ${BUILD_DIR}/qtAliceVision_build
87+
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
88+
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR}$<SEMICOLON>${ALICEVISION_ROOT} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
7489
)
7590
endif()
7691

Dockerfile

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
ARG CUDA_TAG=7.0
1+
ARG CUDA_TAG=8.0
22
ARG OS_TAG=7
3-
FROM alicevision:centos${OS_TAG}-cuda${CUDA_TAG}
3+
FROM alicevision/alicevision:centos${OS_TAG}-cuda${CUDA_TAG}
44
LABEL maintainer="AliceVision Team [email protected]"
55

66
# Execute with nvidia docker (https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0))
@@ -9,10 +9,11 @@ LABEL maintainer="AliceVision Team [email protected]"
99
ENV MESHROOM_DEV=/opt/Meshroom \
1010
MESHROOM_BUILD=/tmp/Meshroom_build \
1111
MESHROOM_BUNDLE=/opt/Meshroom_bundle \
12-
QT_DIR=/opt/qt/5.11.1/gcc_64 \
12+
QT_DIR=/opt/qt/5.13.0/gcc_64 \
1313
PATH="${PATH}:${MESHROOM_BUNDLE}"
1414

15-
COPY . "${MESHROOM_DEV}"
15+
# Workaround for qmlAlembic/qtAliceVision builds: fuse lib/lib64 folders
16+
RUN cp -rf ${AV_INSTALL}/lib/* ${AV_INSTALL}/lib64 && rm -rf ${AV_INSTALL}/lib && ln -s ${AV_INSTALL}/lib64 ${AV_INSTALL}/lib
1617

1718
# Install libs needed by Qt
1819
RUN yum install -y \
@@ -39,6 +40,8 @@ RUN yum install -y \
3940
RUN yum install -y centos-release-scl
4041
RUN yum install -y rh-python36
4142

43+
COPY . "${MESHROOM_DEV}"
44+
4245
# Install Meshroom requirements and freeze bundle
4346
RUN source scl_source enable rh-python36 && cd "${MESHROOM_DEV}" && pip install -r dev_requirements.txt -r requirements.txt && python setup.py install_exe -d "${MESHROOM_BUNDLE}" && \
4447
find ${MESHROOM_BUNDLE} -name "*Qt5Web*" -delete && \
@@ -52,17 +55,19 @@ RUN source scl_source enable rh-python36 && cd "${MESHROOM_DEV}" && pip install
5255

5356
# Install Qt (to build plugins)
5457
WORKDIR /tmp/qt
58+
# Qt version in specified in docker/qt-installer-noninteractive.qs
5559
RUN curl -LO http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run && \
5660
chmod u+x qt-unified-linux-x64-online.run && \
5761
./qt-unified-linux-x64-online.run --verbose --platform minimal --script "${MESHROOM_DEV}/docker/qt-installer-noninteractive.qs" && \
5862
rm ./qt-unified-linux-x64-online.run
5963

6064
WORKDIR ${MESHROOM_BUILD}
61-
# Temporary workaround for qmlAlembic build
62-
RUN rm -rf "${AV_INSTALL}/lib" && ln -s "${AV_INSTALL}/lib64" "${AV_INSTALL}/lib"
6365

6466
# Build Meshroom plugins
6567
RUN cmake "${MESHROOM_DEV}" -DALICEVISION_ROOT="${AV_INSTALL}" -DQT_DIR="${QT_DIR}" -DCMAKE_INSTALL_PREFIX="${MESHROOM_BUNDLE}/qtPlugins"
68+
# RUN make -j8 qtOIIO
69+
# RUN make -j8 qmlAlembic
70+
# RUN make -j8 qtAliceVision
6671
RUN make -j8 && cd /tmp && rm -rf ${MESHROOM_BUILD}
6772

6873
RUN mv "${AV_BUNDLE}" "${MESHROOM_BUNDLE}/aliceVision"

docker/qt-installer-noninteractive.qs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ Controller.prototype.ComponentSelectionPageCallback = function() {
4646
widget.deselectAll();
4747

4848
// widget.selectComponent("qt");
49-
// widget.selectComponent("qt.qt5.5111");
50-
widget.selectComponent("qt.qt5.5111.gcc_64");
51-
// widget.selectComponent("qt.qt5.5111.qtscript");
52-
// widget.selectComponent("qt.qt5.5111.qtscript.gcc_64");
53-
// widget.selectComponent("qt.qt5.5111.qtwebengine");
54-
// widget.selectComponent("qt.qt5.5111.qtwebengine.gcc_64");
55-
// widget.selectComponent("qt.qt5.5111.qtwebglplugin");
56-
// widget.selectComponent("qt.qt5.5111.qtwebglplugin.gcc_64");
49+
// widget.selectComponent("qt.qt5.5130");
50+
widget.selectComponent("qt.qt5.5130.gcc_64");
51+
// widget.selectComponent("qt.qt5.5130.qtscript");
52+
// widget.selectComponent("qt.qt5.5130.qtscript.gcc_64");
53+
// widget.selectComponent("qt.qt5.5130.qtwebengine");
54+
// widget.selectComponent("qt.qt5.5130.qtwebengine.gcc_64");
55+
// widget.selectComponent("qt.qt5.5130.qtwebglplugin");
56+
// widget.selectComponent("qt.qt5.5130.qtwebglplugin.gcc_64");
5757
// widget.selectComponent("qt.tools");
5858

5959
gui.clickButton(buttons.NextButton);

0 commit comments

Comments
 (0)