Skip to content

Commit 88c44fe

Browse files
authored
Add extension near to genai library, tokenizers from fork (#11)
* enable * libtbb-dev * move * slash * install * core_genai_dev * remove export * rreorganaise components * add SOVERSION, and requirements-build.txt * repalce SKBUILD with EXCLUDE_FROM_ALL because the effect is the same * fix NAMELINK_COMPONENT * remove extraline * add soft restrictions * Fix build to unblock packaging * improve naming * install samples * remove quotes * use main target name because an alias can't be specified in cmake --target * define CMAKE_BUILD_PARALLEL_LEVEL * Ensure ./requirements-build.txt won't outdate * Use ./requirements-build.txt in python lib build * Add missing && * Test Debug * add matrix for windows_genai_package * openvino_tokenizers from form * update openvino_tokenizers * update openvino_tokenizers * update openvino_tokenizers * revert openvino_tokenizers * tokenizers from fork * update tokenizers * centos7_2024.2.0.dev * copy target * revert tokenizers * reapply useful changes * copy so only * Update tokenizers, centos7_2024.2.0.dev * single thread * ubuntu22 * nightyl * --pre --extra-index-url * update tokenizers * space * move --pre --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly * release tokenizers * merge * downgrade tokenizers * downgrade * two steps * downgrade tokenizers * dont setupvars * source * fix * submodule * releases/2024/2 tokenizers * fix-2 * rebase * use make * comment * CMAKE_GENERATOR=Unix Makefiles * update openvino * space * optimum-cli from fork * different commit * from branch * remove exrtra-index for SD * reorder pip install * revert unwanted changes * Ubuntu-22 * openvino_tokenizers~=2024.2.0.0 * remove -pre . --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly * upgrade to prerelease * revert requirements.txt * remove --pre, setupvars * get openvino_tokenizers._ext_path * take release pybind, fix soversion, and tokenizers folder * spelling * dont copy libs * put ov_tokenizers_path back * GENAI_BUILD_DIR=../../build * Add extension near to genai library * include openvino/util/file_util.hpp * get_absolute_file_path * remove namepsace * # include <limits.h> * more than one . * till next dot * _ext_path * -1 * +1 * +1 * path * ext name * with_openvino_tokenizers * char * revert test * tokenizers from form * update fork * lib * fix cherry-pick * update fork * dont spoil source dir * Generator expressions to disable appending a per-configuration subdirectory * remove versions * fix path * try * try * verbose * spelling * rename file * remove build.tool-args * Release * dont speciify targets * revert 81ec069
1 parent 81ec069 commit 88c44fe

File tree

15 files changed

+200
-54
lines changed

15 files changed

+200
-54
lines changed

.github/workflows/causal_lm_cpp.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ jobs:
194194
shell: cmd
195195
run: |
196196
call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat
197-
set PATH=.\build\src\cpp\Release;%PATH%
197+
set PATH=.\build\openvino_genai\;%PATH%
198198
.\build\text_generation\causal_lm\cpp\Release\beam_search_causal_lm.exe .\TinyLlama-1.1B-Chat-v1.0\ "69" > .\pred.txt
199199
200200
echo import transformers > ref.py

.github/workflows/genai_python_lib.yml

+11-8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ jobs:
77
env:
88
# A tokenizers' dependency fails to compile with Ninja in CenOS7 env
99
CMAKE_GENERATOR: Unix Makefiles
10+
CMAKE_BUILD_PARALLEL_LEVEL: null
1011
steps:
1112
- uses: actions/checkout@v4
1213
with:
@@ -21,9 +22,9 @@ jobs:
2122
- run: source ./ov/setupvars.sh && cmake --build ./build/ --config Release -j
2223
# GitHub Actions already provides what is listed in ./requirements-build.txt but the internal
2324
# build system doesn't. Install ./requirements-build.txt to detect possible conflicts.
24-
- run: source ./ov/setupvars.sh && python -m pip install ./thirdparty/openvino_tokenizers/[transformers] -r ./requirements-build.txt --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/pre-release
25-
- run: source ./ov/setupvars.sh && PYTHONPATH=./src/python/ python -c "from openvino_genai import LLMPipeline"
26-
- run: source ./ov/setupvars.sh && CMAKE_BUILD_PARALLEL_LEVEL="" python -m pip install .
25+
- run: source ./ov/setupvars.sh && python -m pip install ./thirdparty/openvino_tokenizers/[transformers] -r ./requirements-build.txt --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/pre-release --verbose --verbose --verbose
26+
- run: source ./ov/setupvars.sh && PYTHONPATH=./build/ python -c "from openvino_genai import LLMPipeline"
27+
- run: source ./ov/setupvars.sh && python -m pip install . --config-settings=build-dir="build" --verbose --verbose --verbose
2728
- run: python -c "from openvino_genai import LLMPipeline"
2829
- name: GenAI Python API tests
2930
run: |
@@ -37,6 +38,8 @@ jobs:
3738
3839
windows_genai_python_lib:
3940
runs-on: windows-latest
41+
env:
42+
CMAKE_BUILD_PARALLEL_LEVEL: null
4043
defaults:
4144
run:
4245
shell: cmd
@@ -49,11 +52,11 @@ jobs:
4952
python-version: 3.8
5053
- run: curl --output ov.zip https://storage.openvinotoolkit.org/repositories/openvino/packages/pre-release/2024.2.0rc1/windows/w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64.zip
5154
- run: unzip ov.zip
52-
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && cmake -DCMAKE_BUILD_TYPE=Release -S ./ -B ./build/
53-
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && cmake --build ./build/ --config Release -j
5455
# GitHub Actions already provides what is listed in ./requirements-build.txt but the internal
5556
# build system doesn't. Install ./requirements-build.txt to detect possible conflicts.
56-
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install ./thirdparty/openvino_tokenizers/[transformers] -r ./requirements-build.txt --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/pre-release
57-
- run: set "PYTHONPATH=./src/python;" && call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -c "from openvino_genai import LLMPipeline" # cmd evaluates variables in a different way. Setting PYTHONPATH before setupvars.bat instead of doing that after solves that.
58-
- run: set CMAKE_BUILD_PARALLEL_LEVEL=&& call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install .
57+
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install ./thirdparty/openvino_tokenizers/[transformers] -r ./requirements-build.txt --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/pre-release --verbose --verbose --verbose
58+
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install . --verbose --verbose --verbose # --verbose is additive, and can be used up to 3 times.
5959
- run: python -c "from openvino_genai import LLMPipeline"
60+
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && cmake -DCMAKE_BUILD_TYPE=Release -S ./ -B ./build/
61+
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && cmake --build ./build/ --config Release -j
62+
- run: set "PYTHONPATH=./build/" && call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -c "from openvino_genai import LLMPipeline" # cmd evaluates variables in a different way. Setting PYTHONPATH before setupvars.bat instead of doing that after solves that.

.gitignore

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
# They are copied to python folder during the build to allow skipping wheel installation
2-
src/python/openvino_genai/*genai*
3-
src/python/openvino_genai/py_generate_pipeline*
4-
51
# build/artifact dirs
62
_*
73
[Bb]uild*/

CMakeLists.txt

+29
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,35 @@ endif()
1616
project(OpenVINOGenAI VERSION 2024.2.0.0)
1717

1818
add_subdirectory(./thirdparty/openvino_tokenizers/ "${CMAKE_CURRENT_BINARY_DIR}/openvino_tokenizers/")
19+
# Put binaries to a single dir to mimic package structure.
20+
set_target_properties(openvino_tokenizers PROPERTIES
21+
# Generator expressions to disable appending a per-configuration subdirectory (Release, Debug).
22+
# ARCHIVE_OUTPUT is irrelevant. It's here just to keep all the artifacts in one place.
23+
ARCHIVE_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
24+
LIBRARY_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
25+
RUNTIME_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
26+
)
27+
if(TARGET core_tokenizers)
28+
set_target_properties(core_tokenizers PROPERTIES
29+
ARCHIVE_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
30+
LIBRARY_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
31+
RUNTIME_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
32+
)
33+
else()
34+
# Prebuilt dependencies
35+
if(WIN32)
36+
set(extra_libs "${CMAKE_BINARY_DIR}/_deps/fast_tokenizer-src/lib/core_tokenizers.dll"
37+
"${CMAKE_BINARY_DIR}/_deps/fast_tokenizer-src/third_party/lib/icudt70.dll"
38+
"${CMAKE_BINARY_DIR}/_deps/fast_tokenizer-src/third_party/lib/icuuc70.dll")
39+
elseif(LINUX)
40+
set(extra_libs "${CMAKE_BINARY_DIR}/_deps/fast_tokenizer-src/lib/libcore_tokenizers.so")
41+
elseif(APPLE)
42+
set(extra_libs "${CMAKE_BINARY_DIR}/_deps/fast_tokenizer-src/lib/libcore_tokenizers.dylib")
43+
endif()
44+
add_custom_command(OUTPUT "${extra_libs}"
45+
COMMAND "${CMAKE_COMMAND}" -E copy "${extra_libs}" "${CMAKE_BINARY_DIR}/openvino_genai/"
46+
DEPENDS openvino_tokenizers)
47+
endif()
1948
add_subdirectory(src)
2049
add_subdirectory(text_generation/causal_lm/cpp)
2150

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ dependencies = [
2222
[tool.scikit-build]
2323
cmake.source-dir = "./"
2424
cmake.build-type = "Release"
25-
cmake.targets = ["py_generate_pipeline", "genai"]
2625
install.components = ["wheel_genai"]
2726
sdist.cmake = true
2827
wheel.packages = ["src/python/openvino_genai"]
@@ -37,5 +36,6 @@ __version__ = "${version}"
3736
'''
3837

3938
[build-system]
39+
# TODO: add build.tool-args = ["--parallel"] after scikit-build-core is updated to 0.9.4+.
4040
requires = ["scikit-build-core~=0.8.0", "cmake~=3.23"] # See https://github.com/openvinotoolkit/openvino_tokenizers/pull/123
4141
build-backend = "scikit_build_core.build"

src/cpp/CMakeLists.txt

+5-10
Original file line numberDiff line numberDiff line change
@@ -41,31 +41,26 @@ file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
4141

4242
set(TARGET_NAME genai)
4343
add_library(${TARGET_NAME} SHARED ${SOURCE_FILES})
44-
add_library(openvino::${TARGET_NAME} ALIAS ${TARGET_NAME})
44+
add_library(openvino::genai ALIAS ${TARGET_NAME})
4545

4646
target_include_directories(${TARGET_NAME}
4747
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<INSTALL_INTERFACE:runtime/include>")
4848

4949
target_link_libraries(${TARGET_NAME} PUBLIC openvino::runtime PRIVATE nlohmann_json::nlohmann_json jinja2cpp)
5050

51-
target_compile_definitions(${TARGET_NAME} PRIVATE OPENVINO_TOKENIZERS_PATH=\"$<TARGET_FILE:openvino_tokenizers>\")
52-
5351
target_compile_features(${TARGET_NAME} PUBLIC cxx_std_17)
5452

5553
# Extract two last digits from CMAKE_PROJECT_VERSION_MAJOR because SOVERSION can only contain up to 4 symbols.
5654
string(REGEX MATCH [=[[0-9][0-9]$]=] MAJOR_SUFFIX ${CMAKE_PROJECT_VERSION_MAJOR})
5755
set_target_properties(${TARGET_NAME} PROPERTIES
56+
OUTPUT_NAME openvino_genai
5857
VERSION ${CMAKE_PROJECT_VERSION}
5958
SOVERSION ${MAJOR_SUFFIX}${CMAKE_PROJECT_VERSION_MINOR}${CMAKE_PROJECT_VERSION_PATCH}
59+
ARCHIVE_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
60+
LIBRARY_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
61+
RUNTIME_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
6062
)
6163

62-
# Copy the library to python to allow skipping wheel installation
63-
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
64-
COMMAND "${CMAKE_COMMAND}" -E copy
65-
"$<TARGET_FILE:${TARGET_NAME}>"
66-
"${CMAKE_CURRENT_SOURCE_DIR}/../python/openvino_genai/$<TARGET_FILE_NAME:${TARGET_NAME}>"
67-
COMMENT "Copy ${TARGET_NAME} to src/python/openvino_genai")
68-
6964
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
7065
install(TARGETS ${TARGET_NAME}
7166
LIBRARY DESTINATION python/openvino_genai/ COMPONENT pygenai_${Python_VERSION_MAJOR}_${Python_VERSION_MINOR}

src/cpp/include/openvino/genai/llm_pipeline.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class OPENVINO_GENAI_EXPORTS LLMPipeline {
7171
* @param model_path Path to the dir model xml/bin files, tokenizers and generation_configs.json
7272
* @param device optional device
7373
* @param plugin_config optional plugin_config
74+
* @param ov_tokenizers_path optional path to an extension to add. Empty adds openvino_tokenizers from openvini_genai library folder.
7475
*/
7576
LLMPipeline(const std::string& path, const std::string& device="CPU",
7677
const ov::AnyMap& plugin_config={},

src/cpp/src/llm_pipeline.cpp

+65-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,33 @@
1515
#include "utils.hpp"
1616
#include "text_callback_streamer.hpp"
1717

18+
#ifdef _WIN32
19+
# include <windows.h>
20+
# define MAX_ABS_PATH _MAX_PATH
21+
# define get_absolute_path(result, path) _fullpath(result, path.c_str(), MAX_ABS_PATH)
22+
#else
23+
# include <dlfcn.h>
24+
# include <limits.h>
25+
# define MAX_ABS_PATH PATH_MAX
26+
# define get_absolute_path(result, path) realpath(path.c_str(), result)
27+
namespace {
28+
std::string get_absolute_file_path(const std::string& path) {
29+
std::string absolutePath;
30+
absolutePath.resize(MAX_ABS_PATH);
31+
std::ignore = get_absolute_path(&absolutePath[0], path);
32+
if (!absolutePath.empty()) {
33+
// on Linux if file does not exist or no access, function will return NULL, but
34+
// `absolutePath` will contain resolved path
35+
absolutePath.resize(absolutePath.find('\0'));
36+
return std::string(absolutePath);
37+
}
38+
std::stringstream ss;
39+
ss << "Can't get absolute file path for [" << path << "], err = " << strerror(errno);
40+
throw std::runtime_error(ss.str());
41+
}
42+
}
43+
#endif
44+
1845
namespace {
1946

2047
ov::genai::GenerationConfig from_config_json_if_exists(const std::string& path) {
@@ -56,6 +83,39 @@ std::string from_tokenizer_json_if_exists(const std::string& path) {
5683
return res;
5784
}
5885

86+
std::filesystem::path with_openvino_tokenizers(const std::filesystem::path& path) {
87+
#ifdef _WIN32
88+
constexpr char tokenizers[] = "openvino_tokenizers.dll";
89+
#elif __linux__
90+
constexpr char tokenizers[] = "libopenvino_tokenizers.so";
91+
#elif __APPLE__
92+
constexpr char tokenizers[] = "libopenvino_tokenizers.dylib";
93+
#endif
94+
return path.parent_path() / tokenizers;
95+
}
96+
97+
std::string get_ov_genai_library_path() {
98+
#ifdef _WIN32
99+
CHAR genai_library_path[MAX_PATH];
100+
HMODULE hm = NULL;
101+
if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
102+
reinterpret_cast<LPSTR>(get_ov_genai_library_path),
103+
&hm)) {
104+
std::stringstream ss;
105+
ss << "GetModuleHandle returned " << GetLastError();
106+
throw std::runtime_error(ss.str());
107+
}
108+
GetModuleFileNameA(hm, (LPSTR)genai_library_path, sizeof(genai_library_path));
109+
return std::string(genai_library_path);
110+
#elif defined(__APPLE__) || defined(__linux__) || defined(__EMSCRIPTEN__)
111+
Dl_info info;
112+
dladdr(reinterpret_cast<void*>(get_ov_genai_library_path), &info);
113+
return get_absolute_file_path(info.dli_fname).c_str();
114+
#else
115+
# error "Unsupported OS"
116+
#endif // _WIN32
117+
}
118+
59119
}
60120

61121
namespace ov {
@@ -161,7 +221,11 @@ ov::genai::LLMPipeline::LLMPipelineImpl::LLMPipelineImpl(
161221
const std::string& ov_tokenizers_path
162222
):
163223
m_model_runner{ov::Core{}.compile_model(path + "/openvino_model.xml", device, config).create_infer_request()},
164-
m_tokenizer{Tokenizer(path, device, ov_tokenizers_path)},
224+
m_tokenizer{
225+
ov_tokenizers_path.empty()
226+
? Tokenizer(path, device, with_openvino_tokenizers(get_ov_genai_library_path()).string())
227+
: Tokenizer(path, device, ov_tokenizers_path)
228+
},
165229
m_generation_config{from_config_json_if_exists(path)},
166230
m_chat_template{from_tokenizer_json_if_exists(path)}
167231
{}

src/cpp/src/tokenizer.cpp

+1-6
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ class Tokenizer::TokenizerImpl {
5959
if (ov::genai::utils::is_xml(tokenizers_path))
6060
OPENVINO_THROW("tokenizers_path should be a path to a dir not a xml file");
6161

62-
if (ov_tokenizers_path.empty()) {
63-
// OPENVINO_TOKENIZERS_PATH is defined in CMakeLists.txt
64-
core.add_extension(OPENVINO_TOKENIZERS_PATH);
65-
} else {
66-
core.add_extension(ov_tokenizers_path + "/libopenvino_tokenizers.so");
67-
}
62+
core.add_extension(ov_tokenizers_path);
6863
std::shared_ptr<ov::Model> tokenizer_model, detokenizer_model;
6964
try {
7065
tokenizer_model = core.read_model(tokenizers_path + "/openvino_tokenizer.xml");

src/python/CMakeLists.txt

+14-13
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@ endif()
1717

1818
pybind11_add_module(py_generate_pipeline py_generate_pipeline.cpp)
1919
target_link_libraries(py_generate_pipeline PRIVATE openvino::genai)
20+
set_target_properties(py_generate_pipeline PROPERTIES
21+
LIBRARY_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/openvino_genai/>"
22+
)
23+
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/openvino_genai/__init__.py" DESTINATION "${CMAKE_BINARY_DIR}/openvino_genai/")
24+
write_file("${CMAKE_BINARY_DIR}/openvino_genai/__version__.py" "__version__ = \"${CMAKE_PROJECT_VERSION}\"")
2025

2126
# setting RPATH / LC_RPATH depending on platform
2227
if(LINUX)
23-
# to find libgenai.so in the same folder
28+
# to find libopenvino_genai.so in the same folder
2429
set(rpaths "$ORIGIN")
2530
elseif(APPLE)
26-
# to find libgenai.dylib in the same folder
31+
# to find libopenvino_genai.dylib in the same folder
2732
set(rpaths "@loader_path")
2833
if(DEFINED SKBUILD)
2934
# in case we build pip package, we need to refer to libopenvino.dylib from 'openvino' package
@@ -35,17 +40,13 @@ if(rpaths)
3540
set_target_properties(py_generate_pipeline PROPERTIES INSTALL_RPATH "${rpaths}")
3641
endif()
3742

38-
# Copy the library to python to allow skipping wheel installation
39-
add_custom_command(TARGET py_generate_pipeline POST_BUILD
40-
COMMAND "${CMAKE_COMMAND}" -E copy
41-
"$<TARGET_FILE:py_generate_pipeline>"
42-
"${CMAKE_CURRENT_SOURCE_DIR}/openvino_genai/$<TARGET_FILE_NAME:py_generate_pipeline>"
43-
COMMENT "Copy py_generate_pipeline to src/python/openvino_genai/")
44-
4543
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
46-
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/openvino_genai/ DESTINATION python/openvino_genai/ COMPONENT pygenai_${Python_VERSION_MAJOR}_${Python_VERSION_MINOR})
47-
install(TARGETS py_generate_pipeline LIBRARY DESTINATION python/openvino_genai/ COMPONENT pygenai_${Python_VERSION_MAJOR}_${Python_VERSION_MINOR})
44+
install(FILES "${CMAKE_BINARY_DIR}/openvino_genai/__init__.py" "${CMAKE_BINARY_DIR}/openvino_genai/__version__.py" DESTINATION python/openvino_genai/ COMPONENT pygenai_${Python_VERSION_MAJOR}_${Python_VERSION_MINOR})
45+
install(TARGETS genai py_generate_pipeline LIBRARY DESTINATION python/openvino_genai/ COMPONENT pygenai_${Python_VERSION_MAJOR}_${Python_VERSION_MINOR})
4846

4947
# wheel_genai component is used for wheel generation in pyproject.toml.
50-
# Exclude wheel_genai from normal packaging process.
51-
install(TARGETS genai py_generate_pipeline LIBRARY DESTINATION . COMPONENT wheel_genai RUNTIME DESTINATION . COMPONENT wheel_genai EXCLUDE_FROM_ALL)
48+
# Exclude wheel_genai from normal packaging because there's pygenai_X_Y component for that.
49+
install(TARGETS genai py_generate_pipeline
50+
LIBRARY DESTINATION . COMPONENT wheel_genai
51+
RUNTIME DESTINATION . COMPONENT wheel_genai
52+
EXCLUDE_FROM_ALL)
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
# this property will be overwritten by value from pyproject.toml
1+
# Will be overwritten by pyproject.toml or cmake.
22
__version__ = "0.0.0.0"

0 commit comments

Comments
 (0)