From caee16d968adda1786399e827a5aca1ba0928257 Mon Sep 17 00:00:00 2001 From: Krystian Chmielewski Date: Tue, 28 Apr 2020 11:18:59 +0200 Subject: [PATCH] ocloc package with ocloc binary, ocloc library, and ocloc library header Change-Id: I252ecdf9cff1ca20e39b2b4b5675410ac51ed38a --- shared/offline_compiler/source/CMakeLists.txt | 112 ++++++++---------- shared/offline_compiler/source/main.cpp | 8 +- .../offline_compiler/source/ocloc_wrapper.cpp | 4 +- .../source/utilities/CMakeLists.txt | 4 - .../source/utilities/get_path.h | 10 -- .../source/utilities/linux/get_path.cpp | 24 ---- .../source/utilities/windows/get_path.cpp | 12 -- 7 files changed, 56 insertions(+), 118 deletions(-) delete mode 100644 shared/offline_compiler/source/utilities/get_path.h delete mode 100644 shared/offline_compiler/source/utilities/linux/get_path.cpp delete mode 100644 shared/offline_compiler/source/utilities/windows/get_path.cpp diff --git a/shared/offline_compiler/source/CMakeLists.txt b/shared/offline_compiler/source/CMakeLists.txt index ced47a9308..e703e1ba19 100644 --- a/shared/offline_compiler/source/CMakeLists.txt +++ b/shared/offline_compiler/source/CMakeLists.txt @@ -4,7 +4,10 @@ # SPDX-License-Identifier: MIT # -project(ocloc_lib) +project(${OCLOC_NAME}_lib) + +set(OCLOC_NAME "ocloc") +set(OCLOC_FOLDER_NAME "offline_compiler") set(CLOC_LIB_SRCS_LIB ${NEO_SHARED_DIRECTORY}/device_binary_format/ar/ar.h @@ -108,34 +111,12 @@ set(CLOC_LIB_SRCS ${CLOC_LIB_SRCS_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ) -add_library(ocloc_lib SHARED ${CLOC_LIB_SRCS}) - -set(CLOC_SRCS - ${NEO_SHARED_DIRECTORY}/os_interface/os_library.h - ${OCLOC_DIRECTORY}/source/ocloc_wrapper.h - ${OCLOC_DIRECTORY}/source/ocloc_wrapper.cpp - ${OCLOC_DIRECTORY}/source/utilities/get_path.h -) -if(WIN32) - list(APPEND CLOC_SRCS - ${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.cpp - ${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.h - ${OCLOC_DIRECTORY}/source/utilities/windows/get_path.cpp - - ) -else() - list(APPEND CLOC_SRCS - ${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.cpp - ${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.h - ${OCLOC_DIRECTORY}/source/utilities/linux/get_path.cpp - ) -endif() - -add_executable(ocloc ${CLOC_SRCS} ${OCLOC_DIRECTORY}/source/main.cpp ${CLOC_LIB_SRCS}) +add_library(${OCLOC_NAME}_lib SHARED ${CLOC_LIB_SRCS}) add_subdirectories() -create_project_source_tree(ocloc_lib) +create_project_source_tree(${OCLOC_NAME}_lib) +set_target_properties(${OCLOC_NAME}_lib PROPERTIES FOLDER ${OCLOC_FOLDER_NAME}) set(CLOC_LIB_INCLUDES ${ENGINE_NODE_DIR} @@ -146,72 +127,79 @@ set(CLOC_LIB_INCLUDES ${NEO__IGC_INCLUDE_DIR} ) -target_include_directories(ocloc_lib BEFORE PRIVATE ${CLOC_LIB_INCLUDES}) -target_include_directories(ocloc_lib BEFORE PRIVATE ${IGA_INCLUDE_DIR}) +target_include_directories(${OCLOC_NAME}_lib BEFORE PRIVATE ${CLOC_LIB_INCLUDES}) +target_include_directories(${OCLOC_NAME}_lib BEFORE PRIVATE ${IGA_INCLUDE_DIR}) -target_compile_definitions(ocloc_lib PUBLIC ${CLOC_LIB_LIB_FLAGS_DEFINITIONS} ${SUPPORTED_GEN_FLAGS_DEFINITONS} DEFAULT_PLATFORM=${DEFAULT_SUPPORTED_PLATFORM} +target_compile_definitions(${OCLOC_NAME}_lib PUBLIC ${CLOC_LIB_LIB_FLAGS_DEFINITIONS} ${SUPPORTED_GEN_FLAGS_DEFINITONS} DEFAULT_PLATFORM=${DEFAULT_SUPPORTED_PLATFORM} IGA_LIBRARY_NAME=${CMAKE_SHARED_LIBRARY_PREFIX}${IGA_LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) -target_compile_definitions(ocloc_lib PUBLIC ${NEO__IGC_COMPILE_DEFINITIONS}) +target_compile_definitions(${OCLOC_NAME}_lib PUBLIC ${NEO__IGC_COMPILE_DEFINITIONS}) if(MSVC) - target_link_libraries(ocloc_lib dbghelp) - target_link_libraries(ocloc dbghelp) + target_link_libraries(${OCLOC_NAME}_lib dbghelp) endif() if(UNIX) - target_link_libraries(ocloc_lib dl pthread) - target_link_libraries(ocloc dl pthread) + target_link_libraries(${OCLOC_NAME}_lib dl pthread) endif() set(CLOC_LIB_SRCS_LIB ${CLOC_LIB_SRCS_LIB} PARENT_SCOPE) -add_dependencies(ocloc ocloc_lib) +set(OCLOC_SRCS + ${OCLOC_DIRECTORY}/source/ocloc_api.h + ${OCLOC_DIRECTORY}/source/main.cpp +) -target_include_directories(ocloc BEFORE PRIVATE ${CLOC_LIB_INCLUDES}) -target_include_directories(ocloc BEFORE PRIVATE ${IGA_INCLUDE_DIR}) +add_executable(${OCLOC_NAME} ${OCLOC_SRCS}) +target_link_libraries(${OCLOC_NAME} ${OCLOC_NAME}_lib) -target_compile_definitions(ocloc PUBLIC ${CLOC_LIB_LIB_FLAGS_DEFINITIONS} ${SUPPORTED_GEN_FLAGS_DEFINITONS} DEFAULT_PLATFORM=${DEFAULT_SUPPORTED_PLATFORM} - IGA_LIBRARY_NAME=${CMAKE_SHARED_LIBRARY_PREFIX}${IGA_LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} MOCKABLE_VIRTUAL=) -target_compile_definitions(ocloc PRIVATE ${NEO__IGC_COMPILE_DEFINITIONS}) +create_project_source_tree(${OCLOC_NAME}) +set_target_properties(${OCLOC_NAME} PROPERTIES FOLDER ${OCLOC_FOLDER_NAME}) -set(OCLOC_LIB_NAME "ocloc") -if(CMAKE_SIZEOF_VOID_P EQUAL 4) - set(OCLOC_BITNESS_SUFFIX 32) -elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(OCLOC_BITNESS_SUFFIX 64) +if(MSVC) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(OCLOC_BITNESS_SUFFIX 32) + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(OCLOC_BITNESS_SUFFIX 64) + endif() +else() + set(OCLOC_BITNESS_SUFFIX "") endif() if(UNIX) - install(FILES $ + set_property(GLOBAL APPEND PROPERTY NEO_OCL_COMPONENTS_LIST ${OCLOC_NAME}) + install(FILES $ DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - COMPONENT ocloc) - set_property(GLOBAL APPEND PROPERTY NEO_OCL_COMPONENTS_LIST "ocloc") - set_target_properties(ocloc_lib PROPERTIES OUTPUT_NAME ${OCLOC_LIB_NAME}) - add_definitions(-DOCLOC_LIB_NAME="lib${OCLOC_LIB_NAME}.so") -else() - set_target_properties(ocloc_lib PROPERTIES OUTPUT_NAME "${OCLOC_LIB_NAME}${OCLOC_BITNESS_SUFFIX}") - add_definitions(-DOCLOC_LIB_NAME="${OCLOC_LIB_NAME}${OCLOC_BITNESS_SUFFIX}.dll") + COMPONENT ${OCLOC_NAME}) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT ${OCLOC_NAME}) + install(FILES ${OCLOC_DIRECTORY}/source/ocloc_api.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + COMPONENT ${OCLOC_NAME}) endif() -create_project_source_tree(ocloc) -set_target_properties(ocloc PROPERTIES FOLDER "offline_compiler") -set_target_properties(ocloc_lib PROPERTIES FOLDER "offline_compiler") +set(OCLOC_OUTPUT_NAME "${OCLOC_NAME}${OCLOC_BITNESS_SUFFIX}") +set(OCLOC_LIB_OUTPUT_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}${OCLOC_OUTPUT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}") +set_target_properties( + ${OCLOC_NAME}_lib PROPERTIES + OUTPUT_NAME ${OCLOC_OUTPUT_NAME} + OCLOC_OUTPUT_FILENAME ${OCLOC_LIB_OUTPUT_NAME}} +) add_custom_target(copy_compiler_files DEPENDS ${NEO__IGC_TARGETS}) -set_target_properties(copy_compiler_files PROPERTIES FOLDER "offline_compiler") +set_target_properties(copy_compiler_files PROPERTIES FOLDER ${OCLOC_FOLDER_NAME}) if(WIN32) foreach(TARGET_tmp ${NEO__IGC_TARGETS}) add_custom_command( TARGET copy_compiler_files PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory $ - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ - COMMAND ${CMAKE_COMMAND} -E make_directory $ - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + COMMAND ${CMAKE_COMMAND} -E make_directory $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ ) endforeach() endif() - diff --git a/shared/offline_compiler/source/main.cpp b/shared/offline_compiler/source/main.cpp index f39a28d586..692065827f 100644 --- a/shared/offline_compiler/source/main.cpp +++ b/shared/offline_compiler/source/main.cpp @@ -5,9 +5,11 @@ * */ -#include "ocloc_wrapper.h" +#include "ocloc_api.h" int main(int argc, const char *argv[]) { - OclocWrapper oclocWrapper; - return oclocWrapper.invokeOcloc(argc, argv); + return oclocInvoke(argc, argv, + 0, nullptr, nullptr, nullptr, + 0, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr); } diff --git a/shared/offline_compiler/source/ocloc_wrapper.cpp b/shared/offline_compiler/source/ocloc_wrapper.cpp index 820ea45f61..d99abc04b4 100644 --- a/shared/offline_compiler/source/ocloc_wrapper.cpp +++ b/shared/offline_compiler/source/ocloc_wrapper.cpp @@ -9,8 +9,6 @@ #include "shared/source/os_interface/os_library.h" -#include "utilities/get_path.h" - #include #include @@ -41,7 +39,7 @@ struct OclocWrapper::Impl { void loadOcloc() { OclocLibrary ocloc; - std::string oclocLibName = ""; + std::string oclocLibName = OCLOC_LIB_NAME; ocloc.library.reset(NEO::OsLibrary::load(oclocLibName)); if (nullptr == (ocloc.invoke = reinterpret_cast(ocloc.library->getProcAddress("oclocInvoke")))) { std::cout << "Error! Couldn't find OclocInvoke function.\n"; diff --git a/shared/offline_compiler/source/utilities/CMakeLists.txt b/shared/offline_compiler/source/utilities/CMakeLists.txt index eb00854977..92bfc775e5 100644 --- a/shared/offline_compiler/source/utilities/CMakeLists.txt +++ b/shared/offline_compiler/source/utilities/CMakeLists.txt @@ -7,7 +7,6 @@ set(CLOC_LIB_SRCS_UTILITIES ${CMAKE_CURRENT_SOURCE_DIR}/safety_caller.h ${CMAKE_CURRENT_SOURCE_DIR}/get_current_dir.h - ${CMAKE_CURRENT_SOURCE_DIR}/get_path.h ) if(WIN32) @@ -17,15 +16,12 @@ if(WIN32) ${CMAKE_CURRENT_SOURCE_DIR}/windows/seh_exception.cpp ${CMAKE_CURRENT_SOURCE_DIR}/windows/seh_exception.h ${CMAKE_CURRENT_SOURCE_DIR}/windows/get_current_dir_windows.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/windows/get_path.cpp ) else() list(APPEND CLOC_LIB_SRCS_UTILITIES ${CMAKE_CURRENT_SOURCE_DIR}/linux/safety_caller_linux.cpp ${CMAKE_CURRENT_SOURCE_DIR}/linux/get_current_dir_linux.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/linux/get_path.cpp ) endif() target_sources(ocloc_lib PRIVATE ${CLOC_LIB_SRCS_UTILITIES}) -target_sources(ocloc PRIVATE ${CLOC_LIB_SRCS_UTILITIES}) diff --git a/shared/offline_compiler/source/utilities/get_path.h b/shared/offline_compiler/source/utilities/get_path.h deleted file mode 100644 index 053de86d20..0000000000 --- a/shared/offline_compiler/source/utilities/get_path.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once - -extern std::string getPath(); diff --git a/shared/offline_compiler/source/utilities/linux/get_path.cpp b/shared/offline_compiler/source/utilities/linux/get_path.cpp deleted file mode 100644 index 3cced1a593..0000000000 --- a/shared/offline_compiler/source/utilities/linux/get_path.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include -#include -#include -#include - -std::string getPath() { - char exepath[128] = {0}; - std::stringstream ss; - ss << "/proc/" << getpid() << "/exe"; - if (readlink(ss.str().c_str(), exepath, 128) != -1) { - std::string path = std::string(exepath); - path = path.substr(0, path.find_last_of('/') + 1); - return path; - } else { - return std::string(""); - } -} diff --git a/shared/offline_compiler/source/utilities/windows/get_path.cpp b/shared/offline_compiler/source/utilities/windows/get_path.cpp deleted file mode 100644 index 5e0b9eef4a..0000000000 --- a/shared/offline_compiler/source/utilities/windows/get_path.cpp +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include - -std::string getPath() { - return std::string(""); -}