From 925fd3f28c0ddfe03b8cf5e5dd8d469a03633e7e Mon Sep 17 00:00:00 2001 From: Aryan Salmanpour Date: Mon, 6 Jan 2025 16:19:05 -0500 Subject: [PATCH] CTEST updates - remove duplicate tests and use ctest for both make and package tests (#102) * CTEST upodates - remove duplicate tests and use ctest for both make and package tests * clean up * merge upstream * remove unused CMakeLists file --------- Co-authored-by: Kiriti Gowda [ROCm/rocjpeg commit: 5488d5d63d1e516e5c6d22c557cc5db8b1b87986] --- projects/rocjpeg/CMakeLists.txt | 14 +- projects/rocjpeg/api/rocjpeg_version.h | 2 +- projects/rocjpeg/cmake/FindrocJPEG.cmake | 77 ++++++++ projects/rocjpeg/samples/CMakeLists.txt | 179 ------------------ .../rocjpeg/samples/jpegDecode/CMakeLists.txt | 29 ++- .../samples/jpegDecodeBatched/CMakeLists.txt | 29 ++- .../samples/jpegDecodePerf/CMakeLists.txt | 29 ++- projects/rocjpeg/test/CMakeLists.txt | 39 ++-- 8 files changed, 150 insertions(+), 248 deletions(-) create mode 100644 projects/rocjpeg/cmake/FindrocJPEG.cmake delete mode 100644 projects/rocjpeg/samples/CMakeLists.txt diff --git a/projects/rocjpeg/CMakeLists.txt b/projects/rocjpeg/CMakeLists.txt index 13cd795fd7..fb93df1a95 100644 --- a/projects/rocjpeg/CMakeLists.txt +++ b/projects/rocjpeg/CMakeLists.txt @@ -34,11 +34,13 @@ endif() # Set AMD Clang as default compiler if (NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/amdclang) set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) endif() -set(VERSION "0.7.0") +set(VERSION "0.8.0") set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) # Set Project Version and Language project(rocjpeg VERSION ${VERSION} LANGUAGES CXX) @@ -93,7 +95,7 @@ if(CMAKE_BUILD_TYPE MATCHES Debug) # -O0 -- Don't Optimize output file # -g -- generate debugging information, generate debugging information, dwarf-4 for making valgrind work # -Og -- Optimize for debugging experience rather than speed or size - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -gdwarf-4 -Og") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -gdwarf-4") else() # -O3 -- Optimize output file # -DNDEBUG -- turn off asserts @@ -144,10 +146,8 @@ if(HIP_FOUND AND Libva_FOUND) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${LIBVA_LIBRARY}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${LIBVA_DRM_LIBRARY}) - #filesystem: c++ compilers less than equal to 8.5 need explicit link with stdc++fs - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "8.5") - set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) - endif() + # std filesystem + set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) # rocprofiler if(rocprofiler-register_FOUND) @@ -214,7 +214,7 @@ if(HIP_FOUND AND Libva_FOUND) # make test with CTest enable_testing() include(CTest) - add_subdirectory(samples) + add_subdirectory(test) # set package information set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) diff --git a/projects/rocjpeg/api/rocjpeg_version.h b/projects/rocjpeg/api/rocjpeg_version.h index ac488f9539..781cdc69e0 100644 --- a/projects/rocjpeg/api/rocjpeg_version.h +++ b/projects/rocjpeg/api/rocjpeg_version.h @@ -34,7 +34,7 @@ THE SOFTWARE. extern "C" { #endif #define ROCJPEG_MAJOR_VERSION 0 -#define ROCJPEG_MINOR_VERSION 6 +#define ROCJPEG_MINOR_VERSION 8 #define ROCJPEG_MICRO_VERSION 0 diff --git a/projects/rocjpeg/cmake/FindrocJPEG.cmake b/projects/rocjpeg/cmake/FindrocJPEG.cmake new file mode 100644 index 0000000000..fd5ce68d0d --- /dev/null +++ b/projects/rocjpeg/cmake/FindrocJPEG.cmake @@ -0,0 +1,77 @@ +################################################################################ +# Copyright (c) 2024 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +################################################################################ + +# ROCM Path +if(ROCM_PATH) + message("-- ${White}FindrocJPEG: ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") +else() + set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") +endif() + +# find rocJPEG - library and headers +find_path(ROCJPEG_INCLUDE_DIR NAMES rocjpeg.h PATHS ${ROCM_PATH}/include/rocjpeg) +find_library(ROCJPEG_LIBRARY NAMES rocjpeg HINTS ${ROCM_PATH}/lib) +mark_as_advanced(ROCJPEG_INCLUDE_DIR) +mark_as_advanced(ROCJPEG_LIBRARY) + +if(ROCJPEG_INCLUDE_DIR AND ROCJPEG_LIBRARY) + message("-- ${White}FindrocJPEG -- Using rocJPEG: \n\tIncludes:${ROCJPEG_INCLUDE_DIR}\n\tLib:${ROCJPEG_LIBRARY}${ColourReset}") + set(ROCJPEG_FOUND TRUE) +else() + if(rocJPEG_FIND_REQUIRED) + message(FATAL_ERROR "FindrocJPEG -- Failed to find rocJPEG Library") + endif() + message( "-- ${Yellow}NOTE: FindrocJPEG failed to find rocJPEG -- INSTALL rocJPEG${ColourReset}" ) +endif() + +if(ROCJPEG_FOUND) + # Find rocJPEG Version + file(READ "${ROCJPEG_INCLUDE_DIR}/rocjpeg_version.h" ROCJPEG_VERSION_FILE) + string(REGEX MATCH "ROCJPEG_MAJOR_VERSION ([0-9]*)" _ ${ROCJPEG_VERSION_FILE}) + set(ROCJPEG_VER_MAJOR ${CMAKE_MATCH_1}) + string(REGEX MATCH "ROCJPEG_MINOR_VERSION ([0-9]*)" _ ${ROCJPEG_VERSION_FILE}) + set(ROCJPEG_VER_MINOR ${CMAKE_MATCH_1}) + string(REGEX MATCH "ROCJPEG_MICRO_VERSION ([0-9]*)" _ ${ROCJPEG_VERSION_FILE}) + set(ROCJPEG_VER_MICRO ${CMAKE_MATCH_1}) + message("-- ${White}Found rocJPEG Version: ${ROCJPEG_VER_MAJOR}.${ROCJPEG_VER_MINOR}.${ROCJPEG_VER_MICRO}${ColourReset}") + mark_as_advanced(ROCJPEG_VER_MAJOR) + mark_as_advanced(ROCJPEG_VER_MINOR) + mark_as_advanced(ROCJPEG_VER_MICRO) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + rocJPEG + FOUND_VAR + ROCJPEG_FOUND + REQUIRED_VARS + ROCJPEG_INCLUDE_DIR + ROCJPEG_LIBRARY +) + +set(ROCJPEG_FOUND ${ROCJPEG_FOUND} CACHE INTERNAL "") +set(ROCJPEG_INCLUDE_DIR ${ROCJPEG_INCLUDE_DIR} CACHE INTERNAL "") +set(ROCJPEG_LIBRARY ${ROCJPEG_LIBRARY} CACHE INTERNAL "") +set(ROCJPEG_VER_MAJOR ${ROCJPEG_VER_MAJOR} CACHE INTERNAL "") +set(ROCJPEG_VER_MINOR ${ROCJPEG_VER_MINOR} CACHE INTERNAL "") +set(ROCJPEG_VER_MICRO ${ROCJPEG_VER_MICRO} CACHE INTERNAL "") diff --git a/projects/rocjpeg/samples/CMakeLists.txt b/projects/rocjpeg/samples/CMakeLists.txt deleted file mode 100644 index fe8a7fb92d..0000000000 --- a/projects/rocjpeg/samples/CMakeLists.txt +++ /dev/null @@ -1,179 +0,0 @@ -# ############################################################################## -# Copyright (c) 2024 - 2025 Advanced Micro Devices, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -# ############################################################################## -cmake_minimum_required(VERSION 3.10) - -add_test( - NAME - jpeg-decode-fmt-native - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -) - -add_test( - NAME - jpeg-decode-fmt-yuv-planar - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt yuv_planar -) - -add_test( - NAME - jpeg-decode-fmt-y - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt y -) - -add_test( - NAME - jpeg-decode-fmt-rgb - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt rgb -) - -add_test( - NAME - jpeg-decode-fmt-rgb-planar - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt rgb_planar -) - -add_test( - NAME - jpeg-decode-perf-fmt-native - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecodePerf" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecodePerf" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecodeperf" - -i ${CMAKE_SOURCE_DIR}/data/images/ -) - -add_test( - NAME - jpeg-decode-batch-fmt-native - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecodeBatched" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecodeBatched" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecodebatched" - -i ${CMAKE_SOURCE_DIR}/data/images/ -) - -add_test( - NAME - jpeg-decode-crop-fmt-native - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -crop 960,540,2880,1620 -) - -add_test( - NAME - jpeg-decode-crop-fmt-yuv-planar - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt yuv_planar -crop 960,540,2880,1620 -) - -add_test( - NAME - jpeg-decode-crop-fmt-y - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt y -crop 960,540,2880,1620 -) - -add_test( - NAME - jpeg-decode-crop-fmt-rgb - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt rgb -crop 960,540,2880,1620 -) - -add_test( - NAME - jpeg-decode-crop-fmt-rgb-planar - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecode" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecode" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecode" - -i ${CMAKE_SOURCE_DIR}/data/images/ -fmt rgb_planar -crop 960,540,2880,1620 -) - -add_test( - NAME - jpeg-decode-crop-batch-fmt-native - COMMAND - "${CMAKE_CTEST_COMMAND}" - --build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/jpegDecodeBatched" - "${CMAKE_CURRENT_BINARY_DIR}/jpegDecodeBatched" - --build-generator "${CMAKE_GENERATOR}" - --test-command "jpegdecodebatched" - -i ${CMAKE_SOURCE_DIR}/data/images/ -crop 960,540,2880,1620 -) \ No newline at end of file diff --git a/projects/rocjpeg/samples/jpegDecode/CMakeLists.txt b/projects/rocjpeg/samples/jpegDecode/CMakeLists.txt index 54ac1e714f..3695487afc 100644 --- a/projects/rocjpeg/samples/jpegDecode/CMakeLists.txt +++ b/projects/rocjpeg/samples/jpegDecode/CMakeLists.txt @@ -22,8 +22,6 @@ ################################################################################ cmake_minimum_required (VERSION 3.10) -project(jpegdecode) -set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) @@ -33,21 +31,21 @@ elseif(ROCM_PATH) else() set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") endif() +# Set AMD Clang as default compiler +if (NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/amdclang) + set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) +endif() + +project(jpegdecode) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) find_package(HIP QUIET) - -# find rocJPEG -find_library(ROCJPEG_LIBRARY NAMES rocjpeg HINTS {ROCM_PATH}/lib) -find_path(ROCJPEG_INCLUDE_DIR NAMES rocjpeg.h PATHS /opt/rocm/include/rocjpeg {ROCM_PATH}/include/rocjpeg) - -if(ROCJPEG_LIBRARY AND ROCJPEG_INCLUDE_DIR) - set(ROCJPEG_FOUND TRUE) - message("-- ${White}Using rocJPEG -- \n\tLibraries:${ROCJPEG_LIBRARY} \n\tIncludes:${ROCJPEG_INCLUDE_DIR}${ColourReset}") -endif() +find_package(rocJPEG QUIET) if(HIP_FOUND AND ROCJPEG_FOUND) # HIP @@ -55,10 +53,9 @@ if(HIP_FOUND AND ROCJPEG_FOUND) # rocJPEG include_directories (${ROCJPEG_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCJPEG_LIBRARY}) - #filesystem: c++ compilers less than equal to 8.5 need explicit link with stdc++fs - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "8.5") - set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) - endif() + # std filesystem + set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) + list(APPEND SOURCES ${PROJECT_SOURCE_DIR} jpegdecode.cpp) add_executable(${PROJECT_NAME} ${SOURCES}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17") diff --git a/projects/rocjpeg/samples/jpegDecodeBatched/CMakeLists.txt b/projects/rocjpeg/samples/jpegDecodeBatched/CMakeLists.txt index fbe6d6f00c..415650f1de 100644 --- a/projects/rocjpeg/samples/jpegDecodeBatched/CMakeLists.txt +++ b/projects/rocjpeg/samples/jpegDecodeBatched/CMakeLists.txt @@ -22,8 +22,6 @@ ################################################################################ cmake_minimum_required(VERSION 3.10) -project(jpegdecodebatched) -set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) @@ -33,21 +31,21 @@ elseif(ROCM_PATH) else() set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") endif() +# Set AMD Clang as default compiler +if (NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/amdclang) + set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) +endif() + +project(jpegdecodebatched) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) find_package(HIP QUIET) - -# find rocJPEG -find_library(ROCJPEG_LIBRARY NAMES rocjpeg HINTS {ROCM_PATH}/lib) -find_path(ROCJPEG_INCLUDE_DIR NAMES rocjpeg.h PATHS /opt/rocm/include/rocjpeg {ROCM_PATH}/include/rocjpeg) - -if(ROCJPEG_LIBRARY AND ROCJPEG_INCLUDE_DIR) - set(ROCJPEG_FOUND TRUE) - message("-- ${White}Using rocJPEG -- \n\tLibraries:${ROCJPEG_LIBRARY} \n\tIncludes:${ROCJPEG_INCLUDE_DIR}${ColourReset}") -endif() +find_package(rocJPEG QUIET) if(HIP_FOUND AND ROCJPEG_FOUND) # HIP @@ -55,10 +53,9 @@ if(HIP_FOUND AND ROCJPEG_FOUND) # rocJPEG include_directories (${ROCJPEG_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCJPEG_LIBRARY}) - #filesystem: c++ compilers less than equal to 8.5 need explicit link with stdc++fs - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "8.5") - set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) - endif() + # std filesystem + set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) + list(APPEND SOURCES ${PROJECT_SOURCE_DIR} jpegdecodebatched.cpp) add_executable(${PROJECT_NAME} ${SOURCES}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17") diff --git a/projects/rocjpeg/samples/jpegDecodePerf/CMakeLists.txt b/projects/rocjpeg/samples/jpegDecodePerf/CMakeLists.txt index a1c758dea5..49ca927d91 100644 --- a/projects/rocjpeg/samples/jpegDecodePerf/CMakeLists.txt +++ b/projects/rocjpeg/samples/jpegDecodePerf/CMakeLists.txt @@ -22,8 +22,6 @@ ################################################################################ cmake_minimum_required(VERSION 3.10) -project(jpegdecodeperf) -set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) @@ -33,21 +31,21 @@ elseif(ROCM_PATH) else() set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") endif() +# Set AMD Clang as default compiler +if (NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/amdclang) + set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) +endif() + +project(jpegdecodeperf) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) find_package(HIP QUIET) - -# find rocJPEG -find_library(ROCJPEG_LIBRARY NAMES rocjpeg HINTS {ROCM_PATH}/lib) -find_path(ROCJPEG_INCLUDE_DIR NAMES rocjpeg.h PATHS /opt/rocm/include/rocjpeg {ROCM_PATH}/include/rocjpeg) - -if(ROCJPEG_LIBRARY AND ROCJPEG_INCLUDE_DIR) - set(ROCJPEG_FOUND TRUE) - message("-- ${White}Using rocJPEG -- \n\tLibraries:${ROCJPEG_LIBRARY} \n\tIncludes:${ROCJPEG_INCLUDE_DIR}${ColourReset}") -endif() +find_package(rocJPEG QUIET) # threads find_package(Threads REQUIRED) @@ -58,10 +56,9 @@ if(HIP_FOUND AND ROCJPEG_FOUND AND Threads_FOUND) #threads set(THREADS_PREFER_PTHREAD_FLAG ON) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} Threads::Threads) - #filesystem: c++ compilers less than equal to 8.5 need explicit link with stdc++fs - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "8.5") - set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) - endif() + # std filesystem + set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} stdc++fs) + # rocJPEG include_directories (${ROCJPEG_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCJPEG_LIBRARY}) diff --git a/projects/rocjpeg/test/CMakeLists.txt b/projects/rocjpeg/test/CMakeLists.txt index 908cc9e535..6a7ac5dfa9 100644 --- a/projects/rocjpeg/test/CMakeLists.txt +++ b/projects/rocjpeg/test/CMakeLists.txt @@ -22,11 +22,14 @@ # ############################################################################## cmake_minimum_required(VERSION 3.10) -project(ROCJPEG-test) - -# make test with CTest -enable_testing() -include(CTest) +if(NOT DEFINED ENHANCED_MESSAGE) + string(ASCII 27 Esc) + set(ColourReset "${Esc}[m") + set(Red "${Esc}[31m") + set(Green "${Esc}[32m") + set(Yellow "${Esc}[33m") + set(White "${Esc}[37m") +endif() # ROCM Path if(DEFINED ENV{ROCM_PATH}) @@ -36,15 +39,25 @@ elseif(ROCM_PATH) else() set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() - -# find rocJPEG -find_library(ROCJPEG_LIBRARY NAMES ROCJPEG HINTS ${ROCM_PATH}/lib) -find_path(ROCJPEG_INCLUDE_DIR NAMES rocjpeg.h PATHS /opt/rocm/include/rocjpeg ${ROCM_PATH}/include/rocjpeg) - -if(ROCJPEG_LIBRARY AND ROCJPEG_INCLUDE_DIR) - set(ROCJPEG_FOUND TRUE) - message("-- ${White}Using ROCJPEG -- \n\tLibraries:${ROCJPEG_LIBRARY} \n\tIncludes:${ROCJPEG_INCLUDE_DIR}${ColourReset}") +# Set AMD Clang as default compiler +if (NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/amdclang) + set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) endif() +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) + +project(ROCJPEG-test) + +# make test with CTest +enable_testing() +include(CTest) + +# add find modules +list(APPEND CMAKE_MODULE_PATH ${ROCM_PATH}/share/rocjpeg/cmake) + +# find rocDecode +find_package(rocJPEG QUIET) if(NOT ROCJPEG_FOUND) message("-- ${Yellow}${PROJECT_NAME} requires rocJPEG. Install rocJPEG before running CTests")