From bcefa6b1523c20f54b58af205d18a2d7b1961827 Mon Sep 17 00:00:00 2001 From: Sergey Yakubov <sergey.yakubov@desy.de> Date: Mon, 10 Feb 2020 17:37:40 +0100 Subject: [PATCH] switch to cmake 3.7+, update build_env docker images --- CHANGELOG.md | 3 ++- CMakeLists.txt | 2 +- consumer/api/python/CMakeLists_Linux.cmake | 3 ++- consumer/api/python/setup.py.in | 2 +- deploy/build_env/Ubuntu16.04/Dockerfile | 4 ++++ deploy/build_env/Ubuntu16.04/build.sh | 2 ++ deploy/build_env/Ubuntu16.04/install_cmake.sh | 13 +++++++++++++ deploy/build_env/manylinux2010/Dockerfile | 2 ++ deploy/build_env/manylinux2010/build.sh | 2 +- deploy/build_env/manylinux2010/build_image.sh | 2 +- deploy/build_env/manylinux2010/install_cmake.sh | 13 +++++++++++++ producer/api/python/CMakeLists_Linux.cmake | 4 ++-- producer/api/python/setup.py.in | 2 +- 13 files changed, 45 insertions(+), 9 deletions(-) create mode 100755 deploy/build_env/Ubuntu16.04/install_cmake.sh create mode 100755 deploy/build_env/manylinux2010/install_cmake.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index cea185a38..f8c67a30f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 20.03 (unreleased) ++## 20.03 (unreleased) FEATURES * introduced substreams for producer/consumer [[JIRA_102](https://agira.desy.de/browse/HIDRA2-102)] @@ -6,6 +6,7 @@ IMPROVEMENTS * switch to MongoDB 4.2 * receiver use ASAP3 directory structure to save files to * API documentation is available at [asapo-docs.desy.de](asapo-docs.desy.de) +* switch to using cmake 3.7+ BUG FIXES * consumer operation timout - take duration of the operation into account \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index adfc8069e..6a19e04e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.7) project(ASAPO) set(CMAKE_CXX_STANDARD 11) IF(WIN32) diff --git a/consumer/api/python/CMakeLists_Linux.cmake b/consumer/api/python/CMakeLists_Linux.cmake index d9a50307b..f29e20966 100644 --- a/consumer/api/python/CMakeLists_Linux.cmake +++ b/consumer/api/python/CMakeLists_Linux.cmake @@ -9,7 +9,8 @@ else() set (EXTRA_LINK_ARGS "[]") ENDIF() -get_property(ASAPO_CONSUMER_LIB TARGET asapo-consumer PROPERTY LOCATION) +configure_files(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @ONLY) +file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py INPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py) set (ASAPO_CONSUMER_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp/include) diff --git a/consumer/api/python/setup.py.in b/consumer/api/python/setup.py.in index b70319b08..0de6e24cd 100644 --- a/consumer/api/python/setup.py.in +++ b/consumer/api/python/setup.py.in @@ -6,7 +6,7 @@ from Cython.Build import cythonize import numpy module = Extension("asapo_consumer", ["asapo_consumer.pyx"], - extra_objects=['@ASAPO_CONSUMER_LIB@', + extra_objects=['$<TARGET_FILE:asapo-consumer>', '@CURL_LIBRARIES@'], include_dirs=["@ASAPO_CXX_COMMON_INCLUDE_DIR@","@ASAPO_CONSUMER_INCLUDE_DIR@",numpy.get_include()], extra_compile_args=@EXTRA_COMPILE_ARGS@, diff --git a/deploy/build_env/Ubuntu16.04/Dockerfile b/deploy/build_env/Ubuntu16.04/Dockerfile index 45fe5432d..bdbb2bd1e 100644 --- a/deploy/build_env/Ubuntu16.04/Dockerfile +++ b/deploy/build_env/Ubuntu16.04/Dockerfile @@ -11,5 +11,9 @@ RUN ./install_curl.sh /curl RUN apt install -y python-pip python3-pip && pip install --upgrade cython && pip3 install --upgrade cython RUN pip3 install sphinx +ADD install_cmake.sh install_cmake.sh +RUN ./install_cmake.sh + + ADD build.sh /bin/build.sh diff --git a/deploy/build_env/Ubuntu16.04/build.sh b/deploy/build_env/Ubuntu16.04/build.sh index cd34659e4..4daa3974e 100755 --- a/deploy/build_env/Ubuntu16.04/build.sh +++ b/deploy/build_env/Ubuntu16.04/build.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +set -e + cd /asapo/build cmake \ -DCMAKE_BUILD_TYPE="Release" \ diff --git a/deploy/build_env/Ubuntu16.04/install_cmake.sh b/deploy/build_env/Ubuntu16.04/install_cmake.sh new file mode 100755 index 000000000..55245ffb3 --- /dev/null +++ b/deploy/build_env/Ubuntu16.04/install_cmake.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +wget https://cmake.org/files/v3.10/cmake-3.10.0.tar.gz + +tar zxvf cmake-3.* +cd cmake-3.* +./bootstrap --prefix=/usr/local +make -j$(nproc) +make install + +cmake --version + +/usr/local/bin/cmake --version diff --git a/deploy/build_env/manylinux2010/Dockerfile b/deploy/build_env/manylinux2010/Dockerfile index a94863c1d..f9ea1e624 100644 --- a/deploy/build_env/manylinux2010/Dockerfile +++ b/deploy/build_env/manylinux2010/Dockerfile @@ -11,4 +11,6 @@ ADD build.sh /bin/build.sh RUN chmod og+rwX -R /opt +ADD install_cmake.sh install_cmake.sh +RUN ./install_cmake.sh diff --git a/deploy/build_env/manylinux2010/build.sh b/deploy/build_env/manylinux2010/build.sh index 8377035aa..afc0ab8d0 100755 --- a/deploy/build_env/manylinux2010/build.sh +++ b/deploy/build_env/manylinux2010/build.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash - +set -e for python_path in /opt/python/cp{27,35,36,37}*m; do python=$python_path/bin/python diff --git a/deploy/build_env/manylinux2010/build_image.sh b/deploy/build_env/manylinux2010/build_image.sh index 46679a5bc..0228fb276 100755 --- a/deploy/build_env/manylinux2010/build_image.sh +++ b/deploy/build_env/manylinux2010/build_image.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash docker build -t yakser/asapo-env:manylinux2010 . -#docker push yakser/asapo-env:manylinux2010 +docker push yakser/asapo-env:manylinux2010 diff --git a/deploy/build_env/manylinux2010/install_cmake.sh b/deploy/build_env/manylinux2010/install_cmake.sh new file mode 100755 index 000000000..55245ffb3 --- /dev/null +++ b/deploy/build_env/manylinux2010/install_cmake.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +wget https://cmake.org/files/v3.10/cmake-3.10.0.tar.gz + +tar zxvf cmake-3.* +cd cmake-3.* +./bootstrap --prefix=/usr/local +make -j$(nproc) +make install + +cmake --version + +/usr/local/bin/cmake --version diff --git a/producer/api/python/CMakeLists_Linux.cmake b/producer/api/python/CMakeLists_Linux.cmake index 2f42024ab..0a8ca96ac 100644 --- a/producer/api/python/CMakeLists_Linux.cmake +++ b/producer/api/python/CMakeLists_Linux.cmake @@ -9,11 +9,11 @@ else() set (EXTRA_LINK_ARGS "[]") ENDIF() -get_property(ASAPO_PRODUCER_LIB TARGET asapo-producer PROPERTY LOCATION) - set (ASAPO_PRODUCER_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp/include) configure_files(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @ONLY) +file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py INPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py) + ADD_CUSTOM_TARGET(python-lib-producer ALL COMMAND ${Python_EXECUTABLE} setup.py build_ext --inplace --force) diff --git a/producer/api/python/setup.py.in b/producer/api/python/setup.py.in index 180039026..85c5330bd 100644 --- a/producer/api/python/setup.py.in +++ b/producer/api/python/setup.py.in @@ -6,7 +6,7 @@ from Cython.Build import cythonize import numpy module = Extension("asapo_producer", ["asapo_producer.pyx"], - extra_objects=['@ASAPO_PRODUCER_LIB@', + extra_objects=[$<TARGET_FILE:asapo-producer>, '@CURL_LIBRARIES@'], include_dirs=["@ASAPO_CXX_COMMON_INCLUDE_DIR@","@ASAPO_PRODUCER_INCLUDE_DIR@",numpy.get_include()], extra_compile_args=@EXTRA_COMPILE_ARGS@, -- GitLab