diff --git a/CMakeLists.txt b/CMakeLists.txt index 65b278c..ab5b981 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ else() link_directories(/usr/local/lib) endif() else() - set(CMAKE_INSTALL_RPATH "\$ORIGIN/lib") + set(CMAKE_INSTALL_RPATH "\$ORIGIN;\$ORIGIN/lib") endif() endif() if (DEFINED ANDROID_PLATFORM) diff --git a/Dockerfile b/Dockerfile index 9afc041..fed2125 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,5 @@ -ARG DOCKER_PREFIX=wapmobil - -FROM ${DOCKER_PREFIX}/android +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}android ARG LIBS_BUILD_NUMBER=9999 ARG JOBS_COUNT=4 diff --git a/Jenkinsfile b/Jenkinsfile index 4d60d4d..0294651 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,11 +1,33 @@ -node { - checkout scm - def img - def def_args = "--no-cache --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER} --build-arg JOBS_COUNT=4" - if (env.DOCKER_PREFIX) { - img = docker.build("libs", "${def_args} --build-arg DOCKER_PREFIX=${env.DOCKER_PREFIX} .") - sh "docker tag libs ${env.DOCKER_PREFIX}/libs" - } else { - img = docker.build("libs", "${def_args} .") +def build_docker(name) { + def image = "${name}-libs" + echo "Build image ${image}" + def pref = "" + if (env.DOCKER_PREFIX) { + pref = "${env.DOCKER_PREFIX}/" } -} \ No newline at end of file + def args = "--build-arg DOCKER_PREFIX=${pref} --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER} --build-arg JOBS_COUNT=4" + dir ("docker/${image}") { + //echo "build ${image} ${args}" + sh "docker build ${args} --no-cache -t ${image} ." + } +} +node { + checkout scm + def _envmap = [:] + def _env = sh(script: "env", returnStdout: true).trim().split("\n") + _env.each{ l -> + def _ind = l.indexOf('='); + def _n = l.substring(0, _ind); + def _v = l.substring(_ind + 1); + _envmap["${_n}"] = "${_v}"; + } + //println "done!" + //println "${_envmap}" + def platforms = ['debian', 'osx', 'windows', 'android', 'pi'] + for (int i = 0; i < platforms.size(); ++i) { + //echo "check BUILD_${platforms[i]} -> ${_v}" + if (_envmap["BUILD_${platforms[i]}"] == "1") { + build_docker("${platforms[i]}") + } + } +} diff --git a/docker/android-libs/Dockerfile b/docker/android-libs/Dockerfile new file mode 100644 index 0000000..6c68e66 --- /dev/null +++ b/docker/android-libs/Dockerfile @@ -0,0 +1,38 @@ +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}android + +ARG LIBS_BUILD_NUMBER=9999 +ARG JOBS_COUNT=4 + +WORKDIR /soft +RUN git clone -b release --depth 1 --recursive https://git.shs.tools/SHS/libs.git + +WORKDIR /soft/libs_build_host +RUN cmake -DICU=0 -DCROSSTOOLS=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../libs \ + && make install -j${JOBS_COUNT} \ + && rm -rf * \ + && ldconfig + +WORKDIR /soft/libs_build_anroid +ENV _ANDROID_TOOLCHAIN=/usr/lib/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake + +ENV _CUR_ABI=armeabi-v7a +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DICU=0 -DLIB=0 -DQGLENGINE=0 -DQGLVIEW=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=${_ANDROID_TOOLCHAIN} -DQt5_DIR=/soft/android/qt/lib/cmake/Qt5 -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +ENV _CUR_ABI=arm64-v8a +WORKDIR /soft/libs_build_android_${_CUR_ABI} +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DICU=0 -DLIB=0 -DQGLENGINE=0 -DQGLVIEW=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=${_ANDROID_TOOLCHAIN} -DQt5_DIR=/soft/android/qt/lib/cmake/Qt5 -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +ENV _CUR_ABI=x86 +WORKDIR /soft/libs_build_android_${_CUR_ABI} +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DICU=0 -DLIB=0 -DQGLENGINE=0 -DQGLVIEW=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=${_ANDROID_TOOLCHAIN} -DQt5_DIR=/soft/android/qt/lib/cmake/Qt5 -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +ENV _CUR_ABI=x86_64 +WORKDIR /soft/libs_build_android_${_CUR_ABI} +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DICU=0 -DLIB=0 -DQGLENGINE=0 -DQGLVIEW=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=${_ANDROID_TOOLCHAIN} -DQt5_DIR=/soft/android/qt/lib/cmake/Qt5 -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +WORKDIR /soft/src diff --git a/docker/debian-libs/Dockerfile b/docker/debian-libs/Dockerfile new file mode 100644 index 0000000..af6ae8a --- /dev/null +++ b/docker/debian-libs/Dockerfile @@ -0,0 +1,16 @@ +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}debian + +ARG LIBS_BUILD_NUMBER=9999 +ARG JOBS_COUNT=4 + +WORKDIR /soft +RUN git clone -b release --depth 1 --recursive https://git.shs.tools/SHS/libs.git + +WORKDIR /soft/libs_build_debian +RUN cmake -DICU=0 -DLIB=1 -DQGLENGINE=1 -DQGLVIEW=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../libs \ + && make install -j${JOBS_COUNT} \ + && rm -rf * \ + && ldconfig + +WORKDIR /soft/src diff --git a/docker/osx-libs/Dockerfile b/docker/osx-libs/Dockerfile new file mode 100644 index 0000000..551341e --- /dev/null +++ b/docker/osx-libs/Dockerfile @@ -0,0 +1,20 @@ +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}osx + +ARG LIBS_BUILD_NUMBER=9999 +ARG JOBS_COUNT=4 + +WORKDIR /soft +RUN git clone -b release --depth 1 --recursive https://git.shs.tools/SHS/libs.git + +WORKDIR /soft/libs_build_host +RUN cmake -DICU=0 -DCROSSTOOLS=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../libs \ + && make install -j${JOBS_COUNT} \ + && rm -rf * \ + && ldconfig + +WORKDIR /soft/libs_build_osx +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/osx -DICU=0 -DLIB=0 -DQGLENGINE=1 -DQGLVIEW=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Darwin.cmake ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +WORKDIR /soft/src diff --git a/docker/pi-libs/Dockerfile b/docker/pi-libs/Dockerfile new file mode 100644 index 0000000..ea830a0 --- /dev/null +++ b/docker/pi-libs/Dockerfile @@ -0,0 +1,20 @@ +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}pi + +ARG LIBS_BUILD_NUMBER=9999 +ARG JOBS_COUNT=4 + +WORKDIR /soft +RUN git clone -b release --depth 1 --recursive https://git.shs.tools/SHS/libs.git + +WORKDIR /soft/libs_build_host +RUN cmake -DICU=0 -DCROSSTOOLS=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../libs \ + && make install -j${JOBS_COUNT} \ + && rm -rf * \ + && ldconfig + +WORKDIR /soft/libs_build_pi +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DICU=0 -DLIB=0 -DQGLENGINE=1 -DQGLVIEW=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +WORKDIR /soft/src diff --git a/docker/windows-libs/Dockerfile b/docker/windows-libs/Dockerfile new file mode 100644 index 0000000..c2bcabb --- /dev/null +++ b/docker/windows-libs/Dockerfile @@ -0,0 +1,20 @@ +ARG DOCKER_PREFIX=wapmobil/ +FROM ${DOCKER_PREFIX}windows + +ARG LIBS_BUILD_NUMBER=9999 +ARG JOBS_COUNT=4 + +WORKDIR /soft +RUN git clone -b release --depth 1 --recursive https://git.shs.tools/SHS/libs.git + +WORKDIR /soft/libs_build_host +RUN cmake -DICU=0 -DCROSSTOOLS=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../libs \ + && make install -j${JOBS_COUNT} \ + && rm -rf * \ + && ldconfig + +WORKDIR /soft/libs_build_windows +RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/windows -DICU=0 -DLIB=0 -DQGLENGINE=1 -DQGLVIEW=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Windows.cmake ../libs/ \ + && make install -j${JOBS_COUNT} && rm -rf * + +WORKDIR /soft/src diff --git a/pip b/pip index 3386c77..25ddc83 160000 --- a/pip +++ b/pip @@ -1 +1 @@ -Subproject commit 3386c7702cf1f459fc515923dd131a5b02004a90 +Subproject commit 25ddc832af39cf0c0aa31a3dcb7fd541fb1c22b9 diff --git a/qad/cmake/QtWraps.cmake b/qad/cmake/QtWraps.cmake index 50b7185..82668e7 100644 --- a/qad/cmake/QtWraps.cmake +++ b/qad/cmake/QtWraps.cmake @@ -457,7 +457,7 @@ macro(qt_add_executable _NAME) set(CMAKE_INSTALL_NAME_DIR "@rpath") else() if(NOT WIN32) - set(CMAKE_INSTALL_RPATH "\$ORIGIN/lib") + set(CMAKE_INSTALL_RPATH "\$ORIGIN;\$ORIGIN/lib") endif() endif() set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}}) @@ -495,7 +495,7 @@ macro(qt_add_library _NAME) set(CMAKE_INSTALL_NAME_DIR "@rpath") else() if(NOT WIN32) - set(CMAKE_INSTALL_RPATH "\$ORIGIN/lib") + set(CMAKE_INSTALL_RPATH "\$ORIGIN;\$ORIGIN/lib") endif() endif() set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}})