From 1ab19c44b9ad7de1e5db1432dd111df45aed4ca1 Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Thu, 4 Jun 2020 23:27:18 +0200 Subject: [PATCH 1/7] google-benchmark from conda --- CMakeLists.txt | 18 ------------------ environment.yml | 1 + 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da7d39d..858b1c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,6 @@ option(BENCHMARK_BLITZ "benchmark against Blitz" OFF) option(BENCHMARK_ARMADILLO "benchmark agains Armadillo" OFF) option(BENCHMARK_PYTHONIC "benchmark agains numpy + pythran" OFF) option(BENCHMARK_ALL "benchmark against all libraries" OFF) -option(BUILD_EXTERNAL_GOOGLEBENCHMARK "Download and build google benchmark" OFF) if(BENCHMARK_ALL) set(BENCHMARK_XTENSOR ON) @@ -54,25 +53,8 @@ if(MSVC) set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO) endif() -if(BUILD_EXTERNAL_GOOGLEBENCHMARK) - configure_file(modules/downloadGBenchmark.cmake.in googlebenchmark-download/CMakeLists.txt) - execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-download ) - execute_process(COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-download ) - - # Add googlebenchmark directly to our build. This defines - # the gtest and gtest_main targets. - add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-src - ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build) - set(GBENCHMARK_INCLUDE_DIRS "${googlebenchmark_SOURCE_DIR}/include") - set(GBENCHMARK_LIBRARIES benchmark) -else() find_package(benchmark REQUIRED) set(GBENCHMARK_LIBRARIES benchmark::benchmark_main) -endif() # Sources and target diff --git a/environment.yml b/environment.yml index 7905fbe..849f047 100644 --- a/environment.yml +++ b/environment.yml @@ -3,6 +3,7 @@ channels: - conda-forge - defaults dependencies: + - conda-forge::benchmark - eigen - armadillo - xsimd From 2ea9c941c6c4b00191edd7a2752e4f5a315c4831 Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Thu, 4 Jun 2020 23:36:22 +0200 Subject: [PATCH 2/7] Blitz: add to conda env --- CMakeLists.txt | 6 +++--- environment.yml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 858b1c3..fef1a5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,9 +116,9 @@ if(BENCHMARK_ARMADILLO) endif() if(BENCHMARK_PYTHONIC) - find_package(PythonLibs) - find_package(NumPy) - find_package(Pythran) + find_package(PythonLibs REQUIRED) + find_package(NumPy REQUIRED) + find_package(Pythran REQUIRED) link_directories(${Pythran_INCLUDE_DIRS}) target_compile_definitions(${XTENSOR_BENCHMARK_TARGET} PRIVATE HAS_PYTHONIC=1 ENABLE_PYTHON_MODULE=1 USE_BOOST_SIMD=1) target_include_directories(${XTENSOR_BENCHMARK_TARGET} PRIVATE diff --git a/environment.yml b/environment.yml index 849f047..a2f5394 100644 --- a/environment.yml +++ b/environment.yml @@ -4,6 +4,7 @@ channels: - defaults dependencies: - conda-forge::benchmark + - conda-forge::libblitz - eigen - armadillo - xsimd From b9e36b96bb100931ad71051864e8a57756684343 Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Thu, 4 Jun 2020 23:38:23 +0200 Subject: [PATCH 3/7] Pythran: install from conda not from pip --- environment.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/environment.yml b/environment.yml index a2f5394..5c32acf 100644 --- a/environment.yml +++ b/environment.yml @@ -5,6 +5,7 @@ channels: dependencies: - conda-forge::benchmark - conda-forge::libblitz + - conda-forge::pythran - eigen - armadillo - xsimd @@ -13,6 +14,4 @@ dependencies: - cmake - gmp - numpy - - python - - pip: - - pythran + - python==3.7 From 253142ee29b120b8e7dd41fbf5f29946edf5218a Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Fri, 5 Jun 2020 01:51:28 +0200 Subject: [PATCH 4/7] CMake: add conda's include,lib paths --- CMakeLists.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fef1a5a..57ac647 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,9 @@ add_executable(${XTENSOR_BENCHMARK_TARGET} ${XTENSOR_BENCHMARK} ${XTENSOR_HEADER # Mandatory dependencies # ====================== +set(CMAKE_LIBRARY_PATH "$ENV{CONDA_PREFIX}/lib") +set(CMAKE_INCLUDE_PATH "$ENV{CONDA_PREFIX}/include") + find_package(xtensor REQUIRED CONFIG) find_package(xsimd REQUIRED) @@ -116,9 +119,9 @@ if(BENCHMARK_ARMADILLO) endif() if(BENCHMARK_PYTHONIC) - find_package(PythonLibs REQUIRED) - find_package(NumPy REQUIRED) - find_package(Pythran REQUIRED) + find_package(PythonLibs) + find_package(NumPy) + find_package(Pythran ) link_directories(${Pythran_INCLUDE_DIRS}) target_compile_definitions(${XTENSOR_BENCHMARK_TARGET} PRIVATE HAS_PYTHONIC=1 ENABLE_PYTHON_MODULE=1 USE_BOOST_SIMD=1) target_include_directories(${XTENSOR_BENCHMARK_TARGET} PRIVATE From 869ca2d75c1407be81fd6c9014873100e2aa3870 Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Fri, 5 Jun 2020 10:06:22 +0200 Subject: [PATCH 5/7] cmake: fix Numpy detection typo in package name, thanks Johan! --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57ac647..63b1559 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,7 +120,7 @@ endif() if(BENCHMARK_PYTHONIC) find_package(PythonLibs) - find_package(NumPy) + find_package(Numpy) find_package(Pythran ) link_directories(${Pythran_INCLUDE_DIRS}) target_compile_definitions(${XTENSOR_BENCHMARK_TARGET} PRIVATE HAS_PYTHONIC=1 ENABLE_PYTHON_MODULE=1 USE_BOOST_SIMD=1) From f7fc77a5f67c43a383a72e3684336cd42e55e49a Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Fri, 5 Jun 2020 10:08:56 +0200 Subject: [PATCH 6/7] revert conda paths --- CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 63b1559..7600520 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,10 +77,6 @@ add_executable(${XTENSOR_BENCHMARK_TARGET} ${XTENSOR_BENCHMARK} ${XTENSOR_HEADER # Mandatory dependencies # ====================== -set(CMAKE_LIBRARY_PATH "$ENV{CONDA_PREFIX}/lib") -set(CMAKE_INCLUDE_PATH "$ENV{CONDA_PREFIX}/include") - - find_package(xtensor REQUIRED CONFIG) find_package(xsimd REQUIRED) find_package(xtl REQUIRED) From 3cb72bc640d70697bff264a22c05a46396f31f56 Mon Sep 17 00:00:00 2001 From: Marek Otahal Date: Fri, 5 Jun 2020 10:12:13 +0200 Subject: [PATCH 7/7] Revert "google-benchmark from conda" This reverts commit 1ab19c44b9ad7de1e5db1432dd111df45aed4ca1. --- CMakeLists.txt | 18 ++++++++++++++++++ environment.yml | 6 +++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7600520..ea6811f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,7 @@ option(BENCHMARK_BLITZ "benchmark against Blitz" OFF) option(BENCHMARK_ARMADILLO "benchmark agains Armadillo" OFF) option(BENCHMARK_PYTHONIC "benchmark agains numpy + pythran" OFF) option(BENCHMARK_ALL "benchmark against all libraries" OFF) +option(BUILD_EXTERNAL_GOOGLEBENCHMARK "Download and build google benchmark" OFF) if(BENCHMARK_ALL) set(BENCHMARK_XTENSOR ON) @@ -53,8 +54,25 @@ if(MSVC) set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO) endif() +if(BUILD_EXTERNAL_GOOGLEBENCHMARK) + configure_file(modules/downloadGBenchmark.cmake.in googlebenchmark-download/CMakeLists.txt) + execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-download ) + execute_process(COMMAND ${CMAKE_COMMAND} --build . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-download ) + + # Add googlebenchmark directly to our build. This defines + # the gtest and gtest_main targets. + add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-src + ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build) + set(GBENCHMARK_INCLUDE_DIRS "${googlebenchmark_SOURCE_DIR}/include") + set(GBENCHMARK_LIBRARIES benchmark) +else() find_package(benchmark REQUIRED) set(GBENCHMARK_LIBRARIES benchmark::benchmark_main) +endif() # Sources and target diff --git a/environment.yml b/environment.yml index 5c32acf..e7a39a9 100644 --- a/environment.yml +++ b/environment.yml @@ -6,12 +6,12 @@ dependencies: - conda-forge::benchmark - conda-forge::libblitz - conda-forge::pythran - - eigen + - eigen>=3.0 - armadillo - xsimd - xtensor - xtl - - cmake + - cmake>=3.1 - gmp - numpy - - python==3.7 + - python>=3.0