a1267e1fd2
* C compatibility for public headers
- add tests/tools/c-tool.c
- builds a tool (which does nothing) with C language
- ensures that tool can be compiled in C
- add tests/c-tool/CMakeLists.txt
- ensures that tool library build from C is a valid tool
- rocprofiler_counter_info_v0_t is_derived is int instead of bool
- C does not have bool unless <stdbool.h> is included
- add `include/rocprofiler-sdk/hsa/api_trace_version.h
- handles providing HSA_*_TABLE_(MAJOR|STEP)_VERSION values if compiled from C
- cmake define in version.h.in for ROCPROFILER_HSA_*_TABLE_(MAJOR|STEP)_VERSION
- HSA table versions compiled with
- use rocprofiler_(hsa|hip|marker)_api_no_args struct to handle incompatibility b/t empty structs in C vs. C++ (size of 0 vs. size of 1)
- extern "C" in include/rocprofiler-sdk/{hsa,hip,marker}/api_args.h
- fixed spelling error: derrived -> derived
- scope YY_NO_INPUT compile definition to lib/rocprofiler-sdk/counters/parser/*
* Revert CDash dashboard
52 lines
2.0 KiB
CMake
52 lines
2.0 KiB
CMake
rocprofiler_deactivate_clang_tidy()
|
|
|
|
set(expr_parser_sources parser.cpp parser.h scanner.cpp raw_ast.hpp reader.hpp)
|
|
|
|
add_library(rocprofiler-expr-parser OBJECT)
|
|
|
|
if(ROCPROFILER_REGENERATE_COUNTERS_PARSER)
|
|
find_package(FLEX REQUIRED)
|
|
find_package(BISON REQUIRED)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/parser.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/parser.h COPYONLY)
|
|
|
|
bison_target(
|
|
ExprBison parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
|
|
COMPILE_FLAGS "-t"
|
|
DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
|
|
flex_target(ExprFlex scanner.l ${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp)
|
|
add_flex_bison_dependency(ExprFlex ExprBison)
|
|
|
|
set_source_files_properties(${expr_parser_sources} PROPERTIES COMPILE_DEFINITIONS
|
|
YYDEBUG=1)
|
|
|
|
add_custom_target(
|
|
rocprofiler-expr-parser-patch
|
|
COMMAND
|
|
${CMAKE_COMMAND} -DPROJECT_SRC_DIR=${PROJECT_SOURCE_DIR}
|
|
-DPROJECT_BLD_DIR=${PROJECT_BINARY_DIR}
|
|
-DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
|
-DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
|
|
-DFORMAT_EXE=${ROCPROFILER_CLANG_FORMAT_EXE} -P
|
|
${PROJECT_SOURCE_DIR}/source/scripts/patch-parser.cmake
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
|
|
${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp
|
|
VERBATIM)
|
|
|
|
# ensure gets applied when rocprofiler-expr-parser is built
|
|
add_dependencies(rocprofiler-expr-parser rocprofiler-expr-parser-patch)
|
|
endif()
|
|
|
|
target_sources(rocprofiler-expr-parser PRIVATE ${expr_parser_sources})
|
|
target_include_directories(rocprofiler-expr-parser PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
target_compile_definitions(rocprofiler-expr-parser PRIVATE YY_NO_INPUT)
|
|
target_link_libraries(rocprofiler-expr-parser
|
|
PRIVATE rocprofiler::rocprofiler-common-library)
|
|
target_sources(rocprofiler-object-library
|
|
PUBLIC $<TARGET_OBJECTS:rocprofiler-expr-parser>)
|
|
|
|
if(ROCPROFILER_BUILD_TESTS)
|
|
add_subdirectory(tests)
|
|
endif()
|