Git Product home page Git Product logo

intelseapi's Introduction

DISCONTINUATION OF PROJECT

This project will no longer be maintained by Intel.

Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.

Intel no longer accepts patches to this project.

If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.

Contact: [email protected]

intelseapi's People

Contributors

alalek avatar araud avatar asashour avatar devnexen avatar dkolistratova avatar fwyzard avatar ilyachur avatar justaman avatar rdower avatar rus-art avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intelseapi's Issues

Converting trace to json

Is this suppose to do the conversion?
python <InstalDir>IntelSEAPI\bin\sea_runtool.py -o <target> -f gt -i <source folder>

It just exits. I tried on my own trace and on the output from test app - same result. I compiled latest master myself on osx.

ECCN for ittnotify

Hi, For documentation purpose and project release process we need the Export control classification number(ECCN) for ittnotify if it applies. Can you please let me know the ECCN ?

Code review

Hey guys!

Some time ago I asked a question to myself if there was a "perfect" team, that followed all these good design principles and practices.

So I decided to do a small research/comparison of the code quality of open-source code of different large, well-known companies like Microsoft, Intel, JetBrains and etc.
I just want to know where is the best place to work from the perspective of good software design.

I want to give some feedback on your code.
Taking into account that there are some stars and forks of your repository I assume the product itself is useful and investing time into its quality and design will give you lots of benefit, flexibility and etc.
I believe my criticism should have some positive results :)

I was really execited to read some of you code, examples:
https://github.com/01org/IntelSEAPI/blob/master/runtool/sea_runtool.py
https://github.com/01org/IntelSEAPI/blob/master/runtool/importers/osx.py
https://github.com/01org/IntelSEAPI/blob/master/runtool/importers/etw.py
https://github.com/01org/IntelSEAPI/blob/master/runtool/importers/pprof_importer/profile.py
https://github.com/01org/IntelSEAPI/blob/master/runtool/decoders/SteamVR.py
https://github.com/01org/IntelSEAPI/blob/master/runtool/decoders/MSNT_SystemTrace.py
https://github.com/01org/IntelSEAPI/blob/master/sea_itt_lib/sea_itt_lib.cpp
https://github.com/01org/IntelSEAPI/blob/master/sea_itt_lib/ETLRelogger.cpp
...

So, just after opening these files I got a sense that you, guys, totally ignore some basic principles of software design - naming, code splitting and etc.

Just looking at filesizes I understand that something goes wrong here. Most functions span hunderds of lines! (at my work, I write functions of up to 20 lines of code, no more, on daily basis and I believe there is no problem splitting them into the smaller ones, no matter what programming language do you write code in).

There is no common code style (this is most noticable in C++ code, there I see inclusions of c-like code with a mix of code contating higher-level abstractions).

Doing some very simple refactorings like extract method, decompose conditional, rename variable, rename method, convert method to method object can significantly improve the quality of code.

I do really recommend you reading some related literature to find info on the topics like:
Code Smells, Refactoring, SOLID (especially SRP, OCP), KISS, DRY, GRASP, Code Complexity, Code cohesion, LCOM metric.

Something below can help you:
https://refactoring.guru/en
https://martinfowler.com/books/refactoring.html
http://www.cvc.uab.es/shared/teach/a21291/temes/object_oriented_design/materials_adicionals/principles_and_patterns.pdf
https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

You would say, "send me a PR", but as I said, I just do a research and review work :) DIY

Hope my review will be helpful to you :)

ITT_FUNCTION_TASK() cannot be compiled when UNICODE is defined

Hi!

While compiling ITT_FUNCTION_TASK() I get the following error:

IntelSEAPI\include\itt_notify.hpp(47): error C2664: 'void (const __itt_domain *,__itt_id,__itt_string_handle *,const wchar_t *,std::size_t)': cannot convert argument 4 from 'const char *' to 'const wchar_t *'

Judging from the source code there indeed is an error:

  • AddArg() is implemented like that:

void AddArg(__itt_string_handle* pName, const char* value)
{
__itt_metadata_str_add(m_pDomain, m_id, pName, value, 0);
}

  • With UNICODE enabled the __itt_metadata_str_add is expanded as __itt_metadata_str_addW macro, which is declared as:

void ITTAPI __itt_metadata_str_addW(const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const wchar_t *data, size_t length);

Note const wchar_t *data here and const char* value being passed from AddArg()

P.S. This was tested on the 28.01.17 release version

itt_notify.hpp: UNICODE support broken and diverges from Intel ITT API

#ifdef _WIN32
    #define UNICODE_AGNOSTIC(name) name##A
#else
    #define UNICODE_AGNOSTIC(name) name
#endif

This code is odd because it appears to attempt force strings to always be narrow by ... platform detection.

Yet the underlying library, Intel ITT API, will ignore this attempt and do its own checks, specifically and correctly against the UNICODE or _UNICODE defines.

If a client application is being compiled on Windows and has the (_)UNICODE defines set, regardless of whether narrow or wide strings are used, it will cause a compile error. This is because if wide strings are used, the wrong character type is passed. If narrow strings are used, the rest of the header is not consistently using UNICODE_AGNOSTIC, e.g. the function __itt_metadata_str_add() in the template specializations of Task<bool>.AddArg<>()

So, either itt_notify.hpp needs to be consistent with Intel ITT API by removing the UNICODE_AGNOSTIC() check and providing a wide string specialization for .AddArg() or it retains the strange UNICODE_AGNOSTIC platform check code and uses it throughout to force narrow string only support.

If the latter design is chosen, then this should be documented very clearly as a significant difference from the underlying library.

Note. In addition, the following from the Intel ITT API documentation:

"The Intel ITT API contains a subset of functions working with strings ASCII (UTF-8) or Unicode (UTF-16). ASCII functions are wrappers for correspondent Unicode functions, and consequently they utilize more CPU clock ticks than their Unicode analogues."

Excessive build warnings

Build produce excessive warnings, which make it extremely tedious to find true problems. If warnings aren't wanted muted them, otherwise please fix them; best practice and all that.

Provide pkg-config support for Linux

Please, provide standard way to query existence of ITT library and required flags for compilation. This will ease integration of ITT into applications and libraries.

Static compilation is not supported

It is not possible to statically compile, eg TestIntelSEAPI, since it requires a dynamic library. If static compilation can never succeed for parts of the code base, then either warn or simple omit building them.

Windows build/install don't copy the headers

Downloaded source (clone repo, checkout master branch), built x86/x64 libraries, built installer, ran installer ... no headers in target directory.

Downloaded prebuilt windows installer from releases page, ran this installer instead, same problem.

Are the other platforms like this? Am I expected to copy the files around myself? Shouldn't the installers copy the headers?

Align ITT library name between SEAPI and VTune

SEAPI and VTune name ITT library differently:

  • libittnotify64.a - SEAPI
  • libittnotify.a - VTune
    Could you, please, align the name? From my perspective having bitness in the library name is useless on Linux.

Unable to build on Windows (either with cygwin or without)

Hello, I was trying to build this on windows and encountered these issues:

  1. Building on windows via python2 leads to the following error:

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:20 (project):
No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:20 (project):
No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!
See also "C:/Users/agrebeny/Desktop/itt/IntelSEAPI/build_win/64/CMakeFiles/CMakeOutput.log".
See also "C:/Users/agrebeny/Desktop/itt/IntelSEAPI/build_win/64/CMakeFiles/CMakeError.log".
The system cannot find the file specified
CMake Error: Generator: execution of make failed. Make command was: "MSBuild.exe" "ALL_BUILD.vcxproj" "/p:Configuration=Release" "/p:VisualStudioVersion=12.0"
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:20 (project):
No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:20 (project):
No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!
See also "C:/Users/agrebeny/Desktop/itt/IntelSEAPI/build_win/32/CMakeFiles/CMakeOutput.log".
See also "C:/Users/agrebeny/Desktop/itt/IntelSEAPI/build_win/32/CMakeFiles/CMakeError.log".
The system cannot find the file specified
CMake Error: Generator: execution of make failed. Make command was: "MSBuild.exe" "ALL_BUILD.vcxproj" "/p:Configuration=Release" "/p:VisualStudioVersion=12.0"
('target_bits', ['64', '32'])
('Found JDK:', u'C:\Program Files\Java\jdk1.7.0_40')
C:\Users\agrebeny\Desktop\itt\IntelSEAPI
('work_folder: ', 'C:\Users\agrebeny\Desktop\itt\IntelSEAPI\build_win\64')
('\n>>', u'cmake "C:\Users\agrebeny\Desktop\itt\IntelSEAPI" -G"Visual Studio 12 Win64" -DJDK="C:\Program Files\Java\jdk1.7.0_40" ')
('\n>>', 'cmake --build . --config Release --target ALL_BUILD')
('work_folder: ', 'C:\Users\agrebeny\Desktop\itt\IntelSEAPI\build_win\32')
('\n>>', u'cmake "C:\Users\agrebeny\Desktop\itt\IntelSEAPI" -G"Visual Studio 12" -DFORCE_32=ON -DJDK="C:\Program Files\Java\jdk1.7.0_40" ')
('\n>>', 'cmake --build . --config Release --target ALL_BUILD')

However, doing cmake . manually in the root directory and then building via the Visual Studio works fine.
For the record, VS2012 is installed.

  1. Building with gcc 6.3 under cygwin leads to another issue:

[ 30%] Building CXX object CMakeFiles/IntelSEAPI.dir/main.cpp.o
/cygdrive/c/Users/agrebeny/Desktop/itt/IntelSEAPI/main.cpp: In function ‘int GlobalInit()’:
/cygdrive/c/Users/agrebeny/Desktop/itt/IntelSEAPI/main.cpp:109:54: error: ‘strdup’ was not declared in this scope
setenv(_strdup(INTEL_LIBITTNOTIFY "=" LIB_ITT));
^
/cygdrive/c/Users/agrebeny/Desktop/itt/IntelSEAPI/main.cpp:109:55: error: ‘putenv’ was not declared in this scope
setenv(_strdup(INTEL_LIBITTNOTIFY "=" LIB_ITT));
^
make[2]: *** [CMakeFiles/IntelSEAPI.dir/build.make:63: CMakeFiles/IntelSEAPI.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/IntelSEAPI.dir/all] Error 2
make: *** [Makefile:150: all] Error 2

Thanks in advance!

vs2013

Front page says: "on Windows requires Visual Studio 2013 and NSIS (http://nsis.sourceforge.net/) installed". When I tried to build master, buildall.py tried to use vs2012. Took a while to find "--vs" cmd option. I would mention that.

Python API

We need Python API for ITT events. Please contact me for the details.

Compilation does not support the MUSL c library

memory.cpp assumes that the C library on Linux always has execinfo.h present and a specific malloc implementation, both of which are actually details on the GNU libc.

As a result, it does not compile with the musl c library, making it useless for many embedded systems, impossible to use on Alpine Linux (the most popular Docket Linux currently), create fully static c binaries, etc...

ittnotify increment & decrement API seems broken

For the following sample value changing events are skipped. It's very sad as README claims that counters are supported.

#include "ittnotify.h"

__itt_counter temperatureCounter = __itt_counter_create("Temperature", "Domain");
__itt_counter memoryUsageCounter = __itt_counter_create("Memory Usage", "Domain");
unsigned __int64 temperature;

while (...)
{
    ...
    temperature = getTemperature();
    __itt_counter_set_value(temperatureCounter, &temperature);

    __itt_counter_inc_delta(memoryUsageCounter, getAllocatedMemSize());
    __itt_counter_dec_delta(memoryUsageCounter, getDeallocatedMemSize());
    ...
}

__itt_counter_destroy(temperatureCounter);
__itt_counter_destroy(memoryUsageCounter);

Build fails on centos 7.5

# python buildall.py -i
[ 56%] Building CXX object sea_itt_lib/CMakeFiles/sea_itt_lib.dir/__/java/com_intel_sea_IntelSEAPI.cpp.o
In file included from /data/git/github/IntelSEAPI/sea_itt_lib/../java/com_intel_sea_IntelSEAPI.h:2:0,
                 from /data/github/IntelSEAPI/java/com_intel_sea_IntelSEAPI.cpp:1:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
 #include "jni_md.h"
                    ^

Mind the search:

# find / -name jni_md.h 2> /dev/null
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/include/linux/jni_md.h
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/include/linux/jni_md.h

`set(CMAKE_OSX_ARCHITECTURES "i386;x86_64")` is too much of an assumption

set(CMAKE_OSX_ARCHITECTURES "i386;x86_64") assumes that the architectures being compiled for are i386 and x86_64.

This is too much of an assumption because it takes no account of the target architecture.

Additionally, this produces a 'fat' object archive, which is incompatible with third party tools and some language bindings (eg rust can not use 'fat' object archives). Arguably, that is a third party's problem, but it would be nice to either:-

  • make this a compilation option;
  • default to producing a 'thin' object archive for the current target architecture.

Fail to install SEAPI on Linux

I have tried community expected intuitive way to build cmake-powered project, i.e.:

git clone https://github.com/intel/IntelSEAPI.git seapi && cd seapi
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/home/dvrogozh/git/github/sea_install ..
make -j8
make install

While configuration and build succeeded, make install failed:

# make install
[ 23%] Built target ittnotify
[ 61%] Built target IntelSEAPI
[100%] Built target sea_itt_lib
Install the project...
-- Install configuration: ""
-- Installing: /home/dvrogozh/git/github/sea_install/./README.txt
-- Installing: /home/dvrogozh/git/github/sea_install/./include
-- Installing: /home/dvrogozh/git/github/sea_install/./include/ittnotify.f90
-- Installing: /home/dvrogozh/git/github/sea_install/./include/ittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/jitprofiling.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/legacy
-- Installing: /home/dvrogozh/git/github/sea_install/./include/legacy/ittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/libittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/llvm_jit_event_listener.hpp
-- Installing: /home/dvrogozh/git/github/sea_install/include/itt_notify.hpp
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/sea.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/sea_runtool.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/strings.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/*.py to runtool:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/sea.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/sea_runtool.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/strings.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/csv.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/etw.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/ftrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/mac_log.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/osx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/perf.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/pprof_importer.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/qnx.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/*.py to runtool/importers:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/csv.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/etw.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/ftrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/mac_log.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/osx.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/perf.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/qnx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/pprof_importer/profile.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer/*.py to runtool/importers/pprof_importer:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer/profile.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/BestTraceFormat.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/ChromeTracing.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/DGML.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/GraphViz.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/QtCreatorProfiler.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/Stat.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/memory.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/*.py to runtool/exporters:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/BestTraceFormat.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/ChromeTracing.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/DGML.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/GraphViz.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/QtCreatorProfiler.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/Stat.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/memory.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/android.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/ftrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/osx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/win.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/*.py to runtool/collectors:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/android.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/ftrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/osx.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/win.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/Adreno.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/MSNT_SystemTrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/PVR.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/SteamVR.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/i915.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/*.py to runtool/decoders:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/Adreno.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/MSNT_SystemTrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/PVR.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/SteamVR.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/i915.py
CMake Error at cmake_install.cmake:107 (file):
  file INSTALL cannot find "/home/dvrogozh/git/github/IntelSEAPI/bin".


make: *** [install] Error 1

Other comments:

  • ./README.txt - installation location is invalid (with --prefix=/usr it will land in /usr which is wrong), please, change to $DOCDIR, i.e. $DOCDIR/seapi/README.txt, usually /usr/doc/seapi/README.txt
  • include/ittnotify.f90 and others - installation location is invalid, please, make sure to install things as 'include/seapi/ittnotify.f90', i.e. in separate seapi folder
  • runtool/sea.py - location is invalid, this stuff should eventually be in $LIBEXECDIR/seapi, usually /usr/libexec/seapi/sea.py

I strongly recommend to review this: https://cmake.org/cmake/help/v3.10/module/GNUInstallDirs.html. Make sure to use only these locations and use this cmake extension.

Cannot build it on macOS Sierra

Well, I can't if I just follow the manual.

I cloned IntelSEAPI, then in terminal I executed (as per manual):
python buildall.py -i
And it replied telling it cannot find cmake.

So I downloaded the CMake.dmg from www.cmake.org, installed it, and executed again:
python buildall.py -i

result was:

target_bits ['64']
Found JDK: /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
/Users/.../IntelSEAPI
/Users/.../IntelSEAPI/build_darwin/64

cmake "/Users/.../IntelSEAPI" -G"Unix Makefiles" -DJDK="/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home"
sh: cmake: command not found

make -j4
make: *** No targets specified and no makefile found. Stop.

cpack "/Users/.../IntelSEAPI"
sh: cpack: command not found
Traceback (most recent call last):
File "buildall.py", line 269, in
main()
File "buildall.py", line 255, in main
installer = glob.glob(os.path.join(work_folder, "IntelSEAPI*.sh"))[0]
IndexError: list index out of range

So, after some time I figured that cmake wasn't on the PATH, so I have to add:

export PATH=$PATH:/Applications/CMake.app/Contents/bin/

After that, I executed the command again, now with success:

python buildall.py -i

And it replied with:

[...]

clang: warning: -framework Cocoa: 'linker' input unused
1 warning generated.
1 warning generated.
[100%] Linking CXX shared library ../../bin/libIntelSEAPI.dylib
[100%] Built target sea_itt_lib

cpack "/Users/.../IntelSEAPI"
CPack: Create package using STGZ
CPack: Install projects
CPack: - Run preinstall target for: IntelSEAPI
CPack: - Install project: IntelSEAPI
CPack: Create package
CPack: - package: /Users/.../IntelSEAPI/build_darwin/64/IntelSEAPI-1.0.0-Darwin.sh generated.
/Users/.../IntelSEAPI/build_darwin/64/IntelSEAPI-1.0.0-Darwin.sh
======

Please, add a note to the manual telling that to run it on OS X/macOS you have to install the DMG from www.cmake.org and add the cmake bin to the PATH (export PATH=$PATH:/Applications/CMake.app/Contents/bin/).

Thank you.

Does not cleanly cross-compile

This is because all of the CMakeLists.txt files use the variables WIN32, APPLE, ANDROID (or in one place, ANDROID_NDK) and their NOT forms.

Simply replacing these with the CMAKE syntax if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") and the like fixes these.

test_win.bat strange results?

To verify if the SEAPI works correctly I ran the test_win.bat. There are couple of issues that I see and I am wondering if they can be safely ignored.

First, xperf complains that:

xperf: error: NT Kernel Logger: The instance name passed was not recognized as valid by a WMI data provider. (0x1069)

However the capturing proceeds and results are gathered. I opened the resulting file in chrome tracing and apart from expected stuff like Worker Thread 2 (or main) with slices (denoting functions) I got a lot of sampled entries like:

main: AllocHook
main: CRecursionScope
main: operator new
main: std::chrono::duration
...

Can I get rid of them, and why they are there? Shouldn't they be placed at the same line as main/Worker Thread 1/Worker Thread 2 so that when I click on specific time moment in a task I can see what was executed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.