From 1881a5a61ed78b1fa69826fd52360b03ecca3467 Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Mon, 12 Feb 2024 09:13:37 -0800 Subject: [PATCH] Sample - fix path & build types (#237) --- samples/videoDecode/CMakeLists.txt | 14 ++++++--- samples/videoDecodeMem/CMakeLists.txt | 18 +++++++---- samples/videoDecodeMultiFiles/CMakeLists.txt | 18 +++++++---- samples/videoDecodePerf/CMakeLists.txt | 33 ++++++++++++++------ samples/videoDecodeRGB/CMakeLists.txt | 28 ++++++++++++++--- 5 files changed, 82 insertions(+), 29 deletions(-) diff --git a/samples/videoDecode/CMakeLists.txt b/samples/videoDecode/CMakeLists.txt index 2cf75d3d0f..e777d67ea7 100644 --- a/samples/videoDecode/CMakeLists.txt +++ b/samples/videoDecode/CMakeLists.txt @@ -27,17 +27,23 @@ set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") + message("-- ${White}${PROJECT_NAME} :ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") + set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() 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}/llvm/bin/clang++) +# rocDecode sample build type +set(DEFAULT_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "rocDecode Default Build Type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") +endif() if(CMAKE_BUILD_TYPE MATCHES Debug) # -O0 -- Don't Optimize output file # -gdwarf-4 -- generate debugging information, dwarf-4 for making valgrind work @@ -58,7 +64,7 @@ find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdec if(ROCDECODE_LIBRARY AND ROCDECODE_INCLUDE_DIR) set(ROCDECODE_FOUND TRUE) - message("-- ${White}Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") + message("-- ${White}${PROJECT_NAME}: Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") endif() if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) diff --git a/samples/videoDecodeMem/CMakeLists.txt b/samples/videoDecodeMem/CMakeLists.txt index 1492fc8023..32f48a1905 100644 --- a/samples/videoDecodeMem/CMakeLists.txt +++ b/samples/videoDecodeMem/CMakeLists.txt @@ -27,17 +27,23 @@ set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") + message("-- ${White}${PROJECT_NAME} :ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") + set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() 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}/llvm/bin/clang++) +# rocDecode sample build type +set(DEFAULT_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "rocDecode Default Build Type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") +endif() if(CMAKE_BUILD_TYPE MATCHES Debug) # -O0 -- Don't Optimize output file # -gdwarf-4 -- generate debugging information, dwarf-4 for making valgrind work @@ -53,12 +59,12 @@ endif() find_package(HIP QUIET) find_package(FFmpeg QUIET) # find rocDecode -find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS {ROCM_PATH}/lib) -find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode {ROCM_PATH}/include/rocdecode) +find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS ${ROCM_PATH}/lib) +find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode ${ROCM_PATH}/include/rocdecode) if(ROCDECODE_LIBRARY AND ROCDECODE_INCLUDE_DIR) set(ROCDECODE_FOUND TRUE) - message("-- ${White}Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") + message("-- ${White}${PROJECT_NAME}: Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") endif() if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) diff --git a/samples/videoDecodeMultiFiles/CMakeLists.txt b/samples/videoDecodeMultiFiles/CMakeLists.txt index 874a1d20ba..8eba0e9fd3 100644 --- a/samples/videoDecodeMultiFiles/CMakeLists.txt +++ b/samples/videoDecodeMultiFiles/CMakeLists.txt @@ -27,17 +27,23 @@ set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") + message("-- ${White}${PROJECT_NAME} :ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") + set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() 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}/llvm/bin/clang++) +# rocDecode sample build type +set(DEFAULT_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "rocDecode Default Build Type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") +endif() if(CMAKE_BUILD_TYPE MATCHES Debug) # -O0 -- Don't Optimize output file # -gdwarf-4 -- generate debugging information, dwarf-4 for making valgrind work @@ -53,12 +59,12 @@ endif() find_package(HIP QUIET) find_package(FFmpeg QUIET) # find rocDecode -find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS {ROCM_PATH}/lib) -find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode {ROCM_PATH}/include/rocdecode) +find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS ${ROCM_PATH}/lib) +find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode ${ROCM_PATH}/include/rocdecode) if(ROCDECODE_LIBRARY AND ROCDECODE_INCLUDE_DIR) set(ROCDECODE_FOUND TRUE) - message("-- ${White}Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") + message("-- ${White}${PROJECT_NAME}: Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") endif() if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) diff --git a/samples/videoDecodePerf/CMakeLists.txt b/samples/videoDecodePerf/CMakeLists.txt index f6dc5e3cb3..f0f4bd8c9f 100644 --- a/samples/videoDecodePerf/CMakeLists.txt +++ b/samples/videoDecodePerf/CMakeLists.txt @@ -27,29 +27,44 @@ set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") + message("-- ${White}${PROJECT_NAME} :ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") + set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() 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}/llvm/bin/clang++) +# rocDecode sample build type +set(DEFAULT_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "rocDecode Default Build Type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") +endif() +if(CMAKE_BUILD_TYPE MATCHES Debug) + # -O0 -- Don't Optimize output file + # -gdwarf-4 -- 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") +else() + # -O3 -- Optimize output file + # -DNDEBUG -- turn off asserts + # -fPIC -- Generate position-independent code if possible + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -DNDEBUG -fPIC") +endif() + find_package(HIP QUIET) find_package(FFmpeg QUIET) -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads QUIET) - # find rocDecode -find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS {ROCM_PATH}/lib) -find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode {ROCM_PATH}/include/rocdecode) +find_library(ROCDECODE_LIBRARY NAMES rocdecode HINTS ${ROCM_PATH}/lib) +find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdecode ${ROCM_PATH}/include/rocdecode) if(ROCDECODE_LIBRARY AND ROCDECODE_INCLUDE_DIR) set(ROCDECODE_FOUND TRUE) - message("-- ${White}Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") + message("-- ${White}${PROJECT_NAME}: Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") endif() if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND AND Threads_FOUND) diff --git a/samples/videoDecodeRGB/CMakeLists.txt b/samples/videoDecodeRGB/CMakeLists.txt index a14a22f4e1..99318ea29f 100644 --- a/samples/videoDecodeRGB/CMakeLists.txt +++ b/samples/videoDecodeRGB/CMakeLists.txt @@ -27,19 +27,39 @@ set(CMAKE_CXX_STANDARD 17) # ROCM Path if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") + message("-- ${White}${PROJECT_NAME} :ROCM_PATH Set -- ${ROCM_PATH}${ColourReset}") else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") + set(ROCM_PATH /opt/rocm CACHE PATH "${White}${PROJECT_NAME}: Default ROCm installation path${ColourReset}") endif() 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}/llvm/bin/clang++) +# rocDecode sample build type +set(DEFAULT_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "rocDecode Default Build Type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") +endif() +if(CMAKE_BUILD_TYPE MATCHES Debug) + # -O0 -- Don't Optimize output file + # -gdwarf-4 -- 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") +else() + # -O3 -- Optimize output file + # -DNDEBUG -- turn off asserts + # -fPIC -- Generate position-independent code if possible + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -DNDEBUG -fPIC") +endif() + +# set amdgpu targets with vcn support set(DEFAULT_AMDGPU_TARGETS "gfx908;gfx90a;gfx940;gfx941;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102") set(AMDGPU_TARGETS "${DEFAULT_AMDGPU_TARGETS}" CACHE STRING "List of specific machine types for library to target") + find_package(HIP QUIET) find_package(FFmpeg QUIET) # find rocDecode @@ -48,7 +68,7 @@ find_path(ROCDECODE_INCLUDE_DIR NAMES rocdecode.h PATHS /opt/rocm/include/rocdec if(ROCDECODE_LIBRARY AND ROCDECODE_INCLUDE_DIR) set(ROCDECODE_FOUND TRUE) - message("-- ${White}Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") + message("-- ${White}${PROJECT_NAME}: Using rocDecode -- \n\tLibraries:${ROCDECODE_LIBRARY} \n\tIncludes:${ROCDECODE_INCLUDE_DIR}${ColourReset}") endif() if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND)