Skip to content

Commit

Permalink
Version 0.13.0 (#63)
Browse files Browse the repository at this point in the history
Upgraded image version from 1 to 2

$project.hadouken_autotargets.test and $project.hadouken_autotargets.benchmark are now depend on conan packages instead of find_package. Hadouken now uses image version 2 for development environment container.
  • Loading branch information
Mustafa Kemal GILOR authored Nov 5, 2020
1 parent 696404e commit 2ca3f97
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 14 deletions.
6 changes: 1 addition & 5 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,7 @@
"containerEnv": {},
"remoteEnv": {},
"build": {
"args":
{
"apt_extra_package_list": "${localEnv:HADOUKEN_APT_EXTRA_PACKAGES}",
"pip_extra_package_list": "${localEnv:HADOUKEN_PIP_EXTRA_PACKAGES}"
}
"args": {}
},
// Run user-specified post creation script (if exist)
// Also initialize git flow for repository.
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
version: '3'
services:
devenv:
image: nettsi/hadouken:1
image: nettsi/hadouken:2
# (mgilor): Switched to pre-built image instead.
#build:
#context: .
Expand Down
34 changes: 30 additions & 4 deletions cmake/modules/toolconf/GoogleBenchmark.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,39 @@
# ______________________________________________________

if(${PB_PARENT_PROJECT_NAME_UPPER}_TOOLCONF_USE_GOOGLE_BENCH)
message(STATUS "[*] Configuring `googlebench`")

find_package(benchmark QUIET REQUIRED)

# Required conan package and package version
set(HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME "benchmark")
set(HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION "1.5.2")

message(STATUS "[*] Configuring `${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME}` (${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION})")

# Determine installed "benchmark" package version
execute_process(COMMAND /usr/bin/env conan search ${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME} OUTPUT_VARIABLE CONAN_SEARCH_RESULT)

string(REGEX MATCH "benchmark/(([0-9]+)\\.([0-9]+)\\.([0-9]+))" CONAN_SEARCH_RESULT_VERSION ${CONAN_SEARCH_RESULT})

if(NOT ${CMAKE_MATCH_COUNT} LESS 4)
if(${CMAKE_MATCH_1} STREQUAL ${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION})
message(STATUS "\t[+] Conan package `${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION}` present in environment")
else()
message(STATUS "\t[?] Conan package is present with name `${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME}` but version does not match with required version `${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION}` != `${CMAKE_MATCH_1}`, it will be fetched from remote")
endif()
else()
message(STATUS "\t[-] Conan package `${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION}` is not present in environment, it will be fetched from remote")
endif()

conan_cmake_run(
REQUIRES ${HADOUKEN_CONAN_GOOGLE_BENCHMARK_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_BENCHMARK_VERSION}
BASIC_SETUP CMAKE_TARGETS
BUILD missing
OUTPUT_QUIET
)

make_target(
NAME ${PB_PARENT_PROJECT_NAME}.hadouken_autotargets.benchmark
TYPE STATIC SOURCES ${PROJECT_SOURCE_DIR}/.hadouken/cmake/modules/toolconf/GoogleBenchmark.cpp
LINK PUBLIC benchmark::benchmark benchmark::benchmark_main
LINK PUBLIC CONAN_PKG::benchmark
)

endif()
34 changes: 30 additions & 4 deletions cmake/modules/toolconf/GoogleTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,40 @@
# ______________________________________________________

if(${PB_PARENT_PROJECT_NAME_UPPER}_TOOLCONF_USE_GOOGLE_TEST)
message(STATUS "[*] Configuring `googletest & googlemock`")

find_package(GTest QUIET REQUIRED)
find_package(GMock QUIET REQUIRED)
set(HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME "gtest")
set(HADOUKEN_CONAN_GOOGLE_TEST_VERSION "1.10.0")

message(STATUS "[*] Configuring `${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME}` (${HADOUKEN_CONAN_GOOGLE_TEST_VERSION})")

# Determine installed "benchmark" package version
execute_process(COMMAND /usr/bin/env conan search ${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME} OUTPUT_VARIABLE CONAN_SEARCH_RESULT)

string(REGEX MATCH "gtest/(([0-9]+)\\.([0-9]+)\\.([0-9]+))" CONAN_SEARCH_RESULT_VERSION ${CONAN_SEARCH_RESULT})

if(NOT ${CMAKE_MATCH_COUNT} LESS 4)
if(${CMAKE_MATCH_1} STREQUAL ${HADOUKEN_CONAN_GOOGLE_TEST_VERSION})
message(STATUS "\t[+] Conan package `${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_TEST_VERSION}` present in environment")
else()
message(STATUS "\t[?] Conan package is present with name `${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME}` but version does not match with required version `${HADOUKEN_CONAN_GOOGLE_TEST_VERSION}` != `${CMAKE_MATCH_1}`, it will be fetched from remote")
endif()
else()
message(STATUS "\t[-] Conan package `${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_TEST_VERSION}` is not present in environment, it will be fetched from remote")
endif()

include(GoogleTest)

conan_cmake_run(
REQUIRES ${HADOUKEN_CONAN_GOOGLE_TEST_PKG_NAME}/${HADOUKEN_CONAN_GOOGLE_TEST_VERSION}
BASIC_SETUP CMAKE_TARGETS
BUILD missing
OUTPUT_QUIET
)

make_target(
NAME ${PB_PARENT_PROJECT_NAME}.hadouken_autotargets.test
TYPE STATIC SOURCES ${PROJECT_SOURCE_DIR}/.hadouken/cmake/modules/toolconf/GoogleTest.cpp
LINK PUBLIC GTest::GTest GTest::Main GMock::GMock GMock::Main
LINK PUBLIC CONAN_PKG::gtest
)

endif()

0 comments on commit 2ca3f97

Please sign in to comment.