[x265] [PATCH 1 of 2] cmake: add support for finding Intel PCM on Windows

Steve Borho steve at borho.org
Fri May 8 23:00:05 CEST 2015


On 05/08, deepthi at multicorewareinc.com wrote:
> # HG changeset patch
> # User Deepthi Nandakumar <deepthi at multicorewareinc.com>
> # Date 1431064348 -19800
> #      Fri May 08 11:22:28 2015 +0530
> # Node ID 4203e7ac7d784a307d6d7174f69d96a86bc576c8
> # Parent  7a1fd70739410f874f8ccd51ad688a29364d5e72
> cmake: add support for finding Intel PCM on Windows
> 
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/CMakeLists.txt
> --- a/source/CMakeLists.txt	Tue May 05 14:44:19 2015 -0700
> +++ b/source/CMakeLists.txt	Fri May 08 11:22:28 2015 +0530
> @@ -296,7 +296,7 @@
>      endif()
>  endif(WARNINGS_AS_ERRORS)
>  
> -if (WIN32)
> +if(WIN32)
>      # Visual leak detector
>      find_package(VLD QUIET)
>      if(VLD_FOUND)
> @@ -314,7 +314,20 @@
>          # default to targeting Windows 7 for the NUMA APIs
>          add_definitions(-D_WIN32_WINNT=_WIN32_WINNT_WIN7)
>      endif(WINXP_SUPPORT)
> -endif()
> +endif(WIN32)
> +
> +if(WIN32)
> +   option(ENABLE_PCM "Enable profiling using Intel Performance Counter Monitor" OFF)
> +    if(ENABLE_PCM)
> +        find_package(PCM)
> +        if(PCM_FOUND)
> +            add_definitions(-DENABLE_PCM)
> +            list(APPEND PLATFORM_LIBS PCM)
> +            include_directories(${PCM_ROOT_DIR})
> +            add_subdirectory(profile/PCM)
> +        endif(PCM_FOUND)        
> +    endif(ENABLE_PCM)
> +endif(WIN32)
>  
>  include(version) # determine X265_VERSION and X265_LATEST_TAG
>  include_directories(. common encoder "${PROJECT_BINARY_DIR}")
> @@ -478,7 +491,6 @@
>      source_group(input FILES ${InputFiles})
>      source_group(output FILES ${OutputFiles})
>      source_group(filters FILES ${FilterFiles})
> -
meh
>      check_include_files(getopt.h HAVE_GETOPT_H)
>      if(NOT HAVE_GETOPT_H)
>          if(MSVC)
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/cmake/FindPCM.cmake
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/cmake/FindPCM.cmake	Fri May 08 11:22:28 2015 +0530
> @@ -0,0 +1,25 @@
> +include(FindPackageHandleStandardArgs)
> +SET(PCM_ROOT_DIR "C:/Program Files/Intel/IntelPerformanceCounterMonitorV2.8" CACHE PATH "Location of Intel PCM Root Directory")
> +
> +find_path(PCM_ROOT_DIR
> +  NAMES cpucounters.h
> +  HINTS ${PCM_ROOT_DIR}
> +  DOC "PCM root directory")
> +
> +if(X64)
> +    find_path(PCM_OBJ_DIR
> +      NAMES cpucounters.obj
> +      HINTS ${PCM_ROOT_DIR}
> +      PATH_SUFFIXES PCM_Win/x64/Release PCM_Win/x64/Debug
> +      DOC "PCM Object files")
the spacing is not consistent with the other files
> +else()
> +    find_path(PCM_OBJ_DIR
> +      NAMES cpucounters.obj
> +      HINTS ${PCM_ROOT_DIR}
> +      PATH_SUFFIXES PCM_Win/Release PCM_Win/Debug
> +      DOC "PCM Object files")
> +endif(X64)
> +
> +mark_as_advanced(PCM_ROOT_DIR PCM_OBJ_DIR)

this line here is hiding PCM_ROOT_DIR

> +find_package_handle_standard_args(PCM REQUIRED_VARS PCM_ROOT_DIR PCM_OBJ_DIR)
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/profile/CMakeLists.txt
> --- a/source/profile/CMakeLists.txt	Tue May 05 14:44:19 2015 -0700
> +++ b/source/profile/CMakeLists.txt	Fri May 08 11:22:28 2015 +0530
> @@ -23,3 +23,16 @@
>          list(APPEND PLATFORM_LIBS libittnotify.a dl)
>      endif()
>  endif(ENABLE_VTUNE)
> +
> +if(WIN32)
> +   option(ENABLE_PCM "Enable profiling using Intel Performance Counter Monitor" OFF)
> +    if(ENABLE_PCM)
> +        find_package(PCM)
> +        if(PCM_FOUND)
> +            add_definitions(-DENABLE_PCM)
> +            add_subdirectory(PCM)
> +            list(APPEND PLATFORM_LIBS pcm)
> +            include_directories(${PCM_ROOT_DIR})
> +        endif(PCM_FOUND)
> +    endif(ENABLE_PCM)
> +endif(WIN32)
> \ No newline at end of file
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/profile/PCM/CMakeLists.txt
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/profile/PCM/CMakeLists.txt	Fri May 08 11:22:28 2015 +0530
> @@ -0,0 +1,5 @@
> +include_directories(${PCM_ROOT_DIR})
> +file(GLOB PCMFiles ${PCM_OBJ_DIR}/cpucounters.obj ${PCM_OBJ_DIR}/client_bw.obj ${PCM_OBJ_DIR}/msr.obj 
> +                       ${PCM_OBJ_DIR}/pci.obj ${PCM_OBJ_DIR}/winpmem.obj ${PCM_OBJ_DIR}/utils.obj)
> +source_group(ObjFiles FILES ${PCMFiles}) 
> +add_library(PCM ${PCMFiles} pcm.h pcm.cpp)
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/profile/PCM/pcm.cpp
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/profile/PCM/pcm.cpp	Fri May 08 11:22:28 2015 +0530
> @@ -0,0 +1,22 @@
> +/*****************************************************************************
> + * Copyright (C) 2015 x265 project
> + *
> + * Authors: Deepthi Nandakumar <deepthi at multicorewareinc.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
> + *
> + * This program is also available under a commercial proprietary license.
> + * For more information, contact us at license @ x265.com.
> + *****************************************************************************/
> \ No newline at end of file
> diff -r 7a1fd7073941 -r 4203e7ac7d78 source/profile/PCM/pcm.h
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/profile/PCM/pcm.h	Fri May 08 11:22:28 2015 +0530
> @@ -0,0 +1,29 @@
> +/*****************************************************************************
> + * Copyright (C) 2015 x265 project
> + *
> + * Authors: Deepthi Nandakumar <deepthi at multicorewareinc.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
> + *
> + * This program is also available under a commercial proprietary license.
> + * For more information, contact us at license @ x265.com.
> + *****************************************************************************/
> +
> +#ifndef PCM_H
> +#define PCM_H
> +
> +#include "cpucounters.h"
> +
> +#endif
> \ No newline at end of file
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-- 
Steve Borho


More information about the x265-devel mailing list