Skip to content

Commit 97a523a

Browse files
committed
Merge branch 'staging'
2 parents e742cf8 + e09daa7 commit 97a523a

10 files changed

+381
-32
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
# Get the directory where the script is stored
4+
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5+
6+
#
7+
# Generate the binaries
8+
#
9+
# Clean old packaging files if they exist
10+
mkdir -p ${DIR}/packaging/libs
11+
rm -rf ${DIR}/packaging/libs/*
12+
13+
# Clone tensorflow_cc
14+
cd ${DIR}
15+
git clone https://github.com/FloopCZ/tensorflow_cc/
16+
17+
# Clean up
18+
cd ${DIR}/tensorflow_cc/ || exit 1
19+
git clean -fdx
20+
git reset --hard
21+
mkdir -p build && mkdir -p install && cd build || exit 1
22+
23+
export GCC_HOST_COMPILER_PATH=/usr/bin/gcc
24+
export CC_OPT_FLAGS="-march=sandybridge -mfma"
25+
cmake -DTENSORFLOW_STATIC=OFF -DTENSORFLOW_SHARED=ON -DTENSORFLOW_TAG=v1.13.1 \
26+
-DCMAKE_INSTALL_PREFIX=${DIR}/tensorflow_cc/install -B. -H../tensorflow_cc || exit 1
27+
make && make install || exit 1
28+
29+
# Copy/prepare the final binaries
30+
cp ${DIR}/tensorflow_cc/install/lib/tensorflow_cc/libtensorflow_cc.so ${DIR}/packaging/libs/ || exit 1
31+
cp ${DIR}/tensorflow_cc/install/lib/tensorflow_cc/libprotobuf.a ${DIR}/packaging/libs/ || exit 1
32+
33+
echo READY! Libraries are extracted to ${DIR}/packaging/libs/

3_build_tensorflow_cpp_generic_x86_64.sh

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,54 @@ make -j8 abseil_cpp || exit 1
4040
make -j8 tensorflow install || exit 1
4141

4242
# Copy headers
43+
mkdir -p ${DIR}/tensorflow/install/include/absl || exit 1
44+
find ${DIR}/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp/absl -name '*.h' | cpio -pdm ${DIR}/tensorflow/install/include/absl/ || exit 1
45+
cp ${DIR}/tensorflow/tensorflow/contrib/cmake/protobuf/src/protobuf/src/google/protobuf/port_def.inc ${DIR}/tensorflow/install/include/google/protobuf/ || exit 1
46+
cp ${DIR}/tensorflow/tensorflow/contrib/cmake/protobuf/src/protobuf/src/google/protobuf/port_undef.inc ${DIR}/tensorflow/install/include/google/protobuf/ || exit 1
4347
cd ${DIR}/tensorflow/install/include || exit 1
4448
cp -rf * $DIR/packaging/headers/ || exit 1
4549

4650
# Copy/prepare the final binaries
47-
cd $DIR/tensorflow
51+
mkdir -p $DIR/tensorflow/absl_fix || exit 1
52+
rm -rf $DIR/tensorflow/absl_fix/*.o
53+
cd $DIR/tensorflow/absl_fix || exit 1
54+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_base.a || exit 1
55+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_spinlock_wait.a || exit 1
56+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_dynamic_annotations.a || exit 1
57+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_malloc_internal.a || exit 1
58+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_throw_delegate.a || exit 1
59+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/numeric/libabsl_int128.a || exit 1
60+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_strings.a || exit 1
61+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_strings_internal.a || exit 1
62+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_str_format_internal.a || exit 1
63+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/hash/libabsl_hash.a || exit 1
64+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/container/libabsl_hashtablez_sampler.a || exit 1
65+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/synchronization/libabsl_synchronization.a || exit 1
66+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_stacktrace.a || exit 1
67+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_symbolize.a || exit 1
68+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_debugging_internal.a || exit 1
69+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_demangle_internal.a || exit 1
70+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/time/libabsl_time.a || exit 1
71+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/time/libabsl_time_zone.a || exit 1
72+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/hash/libabsl_city.a || exit 1
73+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/types/libabsl_bad_optional_access.a || exit 1
74+
ar -r libabsl.a *.o || exit 1
75+
cp libabsl.a $DIR/packaging/libs/libabsl.a || exit 1
76+
77+
mkdir -p $DIR/tensorflow/fft2d_fix || exit 1
78+
rm -rf $DIR/tensorflow/fft2d_fix/*.o
79+
cd $DIR/tensorflow/fft2d_fix || exit 1
80+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/fft2d/src/fft2d/libfft2d.a || exit 1
81+
cp $DIR/tensorflow/tensorflow/contrib/cmake/libtensorflow.a $DIR/tensorflow/fft2d_fix/ || exit 1
82+
ar -r $DIR/tensorflow/fft2d_fix/libtensorflow.a *.o || exit 1
83+
84+
cd $DIR/tensorflow || exit 1
4885
cp tensorflow/contrib/cmake/protobuf/src/protobuf/libprotobuf.a $DIR/packaging/libs/libprotobuf-tf-static.a || exit 1
4986
g++ -shared -o $DIR/packaging/libs/libprotobuf-tf.so -Wl,--whole-archive -l:libprotobuf-tf-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
5087
cp tensorflow/contrib/cmake/nsync/src/nsync/libnsync.a $DIR/packaging/libs/libnsync-tf.a || exit 1
51-
ar -x tensorflow/contrib/cmake/fft2d/src/fft2d/libfft2d.a
52-
ar -r tensorflow/contrib/cmake/libtensorflow.a *.o || exit 1
53-
cp tensorflow/contrib/cmake/libtensorflow.a $DIR/packaging/libs/libtensorflow-core-static.a || exit 1
54-
g++ -shared -o $DIR/packaging/libs/libtensorflow-core.so -Wl,--whole-archive -l:libtensorflow-core-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
88+
cp tensorflow/contrib/cmake/nsync/src/nsync/libnsync_cpp.a $DIR/packaging/libs/libnsync-cpp-tf.a || exit 1
89+
cp $DIR/tensorflow/fft2d_fix/libtensorflow.a $DIR/packaging/libs/libtensorflow-core-static.a || exit 1
90+
g++ -shared -o $DIR/packaging/libs/libtensorflow-core.so -Wl,--whole-archive -l:libtensorflow-core-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive -Wl,--allow-multiple-definition || exit 1
5591
cp tensorflow/contrib/cmake/libtf_protos_cc.a $DIR/packaging/libs/libtf_protos_cc-static.a || exit 1
5692
g++ -shared -o $DIR/packaging/libs/libtf_protos_cc.so -Wl,--whole-archive -l:libtf_protos_cc-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
5793

3_build_tensorflow_cpp_optimized_cuda_x86_64.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ rm -rf ${DIR}/packaging/libs/*
1212

1313
# Clone tensorflow_cc
1414
cd ${DIR}
15-
git clone https://github.com/kecsap/tensorflow_cc/
15+
git clone https://github.com/FloopCZ/tensorflow_cc/
1616

1717
# Clean up
1818
cd ${DIR}/tensorflow_cc/ || exit 1
1919
git clean -fdx
2020
git reset --hard
2121
mkdir -p build && mkdir -p install && cd build || exit 1
2222

23-
export CC_OPT_FLAGS="-march=sandybridge -mfma"
24-
cmake -DTENSORFLOW_STATIC=OFF -DTENSORFLOW_SHARED=ON -DTENSORFLOW_TAG=56e4ea405d \
23+
export GCC_HOST_COMPILER_PATH=/usr/bin/gcc
24+
export CC_OPT_FLAGS="-march=skylake"
25+
cmake -DTENSORFLOW_STATIC=OFF -DTENSORFLOW_SHARED=ON -DTENSORFLOW_TAG=v1.13.1 \
2526
-DCMAKE_INSTALL_PREFIX=${DIR}/tensorflow_cc/install -B. -H../tensorflow_cc || exit 1
2627
make && make install || exit 1
2728

3_build_tensorflow_cpp_optimized_x86_64.sh

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ cd $DIR/tensorflow
1919
# Clean up
2020
git clean -fdx
2121
git reset --hard
22+
2223
patch -p1 < $DIR/tf_base.patch
2324
if [ $? != 0 ]; then
2425
echo -e "FATAL: tf_base.patch FAILED!"
@@ -32,24 +33,61 @@ fi
3233

3334
# Build the Tensorflow
3435
cd tensorflow/contrib/cmake
35-
cmake . -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF -Dtensorflow_ENABLE_SSL_SUPPORT=OFF -Dtensorflow_BUILD_PYTHON_BINDINGS=OFF \
36+
cmake . -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF -Dtensorflow_ENABLE_SSL_SUPPORT=OFF -Dtensorflow_BUILD_PYTHON_BINDINGS=OFF -Dsystemlib_ABSEIL_CPP=OFF \
3637
-Dtensorflow_ENABLE_POSITION_INDEPENDENT_CODE=ON -Dtensorflow_BUILD_SHARED_LIB=ON -Dtensorflow_BUILD_CC_EXAMPLE=OFF -DCMAKE_BUILD_TYPE=Release \
3738
-DCMAKE_INSTALL_PREFIX=${DIR}/tensorflow/install || exit 1
39+
make -j8 abseil_cpp || exit 1
3840
make -j8 tensorflow install || exit 1
3941

4042
# Copy headers
43+
mkdir -p ${DIR}/tensorflow/install/include/absl || exit 1
44+
find ${DIR}/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp/absl -name '*.h' | cpio -pdm ${DIR}/tensorflow/install/include/absl/ || exit 1
45+
cp ${DIR}/tensorflow/tensorflow/contrib/cmake/protobuf/src/protobuf/src/google/protobuf/port_def.inc ${DIR}/tensorflow/install/include/google/protobuf/ || exit 1
46+
cp ${DIR}/tensorflow/tensorflow/contrib/cmake/protobuf/src/protobuf/src/google/protobuf/port_undef.inc ${DIR}/tensorflow/install/include/google/protobuf/ || exit 1
4147
cd ${DIR}/tensorflow/install/include || exit 1
4248
cp -rf * $DIR/packaging/headers/ || exit 1
4349

4450
# Copy/prepare the final binaries
45-
cd $DIR/tensorflow
51+
mkdir -p $DIR/tensorflow/absl_fix || exit 1
52+
rm -rf $DIR/tensorflow/absl_fix/*.o
53+
cd $DIR/tensorflow/absl_fix || exit 1
54+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_base.a || exit 1
55+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_spinlock_wait.a || exit 1
56+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_dynamic_annotations.a || exit 1
57+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_malloc_internal.a || exit 1
58+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/base/libabsl_throw_delegate.a || exit 1
59+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/numeric/libabsl_int128.a || exit 1
60+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_strings.a || exit 1
61+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_strings_internal.a || exit 1
62+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/strings/libabsl_str_format_internal.a || exit 1
63+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/hash/libabsl_hash.a || exit 1
64+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/container/libabsl_hashtablez_sampler.a || exit 1
65+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/synchronization/libabsl_synchronization.a || exit 1
66+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_stacktrace.a || exit 1
67+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_symbolize.a || exit 1
68+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_debugging_internal.a || exit 1
69+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/debugging/libabsl_demangle_internal.a || exit 1
70+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/time/libabsl_time.a || exit 1
71+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/time/libabsl_time_zone.a || exit 1
72+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/hash/libabsl_city.a || exit 1
73+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/abseil_cpp/src/abseil_cpp-build/absl/types/libabsl_bad_optional_access.a || exit 1
74+
ar -r libabsl.a *.o || exit 1
75+
cp libabsl.a $DIR/packaging/libs/libabsl.a || exit 1
76+
77+
mkdir -p $DIR/tensorflow/fft2d_fix || exit 1
78+
rm -rf $DIR/tensorflow/fft2d_fix/*.o
79+
cd $DIR/tensorflow/fft2d_fix || exit 1
80+
ar -x $DIR/tensorflow/tensorflow/contrib/cmake/fft2d/src/fft2d/libfft2d.a || exit 1
81+
cp $DIR/tensorflow/tensorflow/contrib/cmake/libtensorflow.a $DIR/tensorflow/fft2d_fix/ || exit 1
82+
ar -r $DIR/tensorflow/fft2d_fix/libtensorflow.a *.o || exit 1
83+
84+
cd $DIR/tensorflow || exit 1
4685
cp tensorflow/contrib/cmake/protobuf/src/protobuf/libprotobuf.a $DIR/packaging/libs/libprotobuf-tf-static.a || exit 1
4786
g++ -shared -o $DIR/packaging/libs/libprotobuf-tf.so -Wl,--whole-archive -l:libprotobuf-tf-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
4887
cp tensorflow/contrib/cmake/nsync/src/nsync/libnsync.a $DIR/packaging/libs/libnsync-tf.a || exit 1
49-
ar -x tensorflow/contrib/cmake/fft2d/src/fft2d/libfft2d.a
50-
ar -r tensorflow/contrib/cmake/libtensorflow.a *.o || exit 1
51-
cp tensorflow/contrib/cmake/libtensorflow.a $DIR/packaging/libs/libtensorflow-core-static.a || exit 1
52-
g++ -shared -o $DIR/packaging/libs/libtensorflow-core.so -Wl,--whole-archive -l:libtensorflow-core-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
88+
cp tensorflow/contrib/cmake/nsync/src/nsync/libnsync_cpp.a $DIR/packaging/libs/libnsync-cpp-tf.a || exit 1
89+
cp $DIR/tensorflow/fft2d_fix/libtensorflow.a $DIR/packaging/libs/libtensorflow-core-static.a || exit 1
90+
g++ -shared -o $DIR/packaging/libs/libtensorflow-core.so -Wl,--whole-archive -l:libtensorflow-core-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive -Wl,--allow-multiple-definition || exit 1
5391
cp tensorflow/contrib/cmake/libtf_protos_cc.a $DIR/packaging/libs/libtf_protos_cc-static.a || exit 1
5492
g++ -shared -o $DIR/packaging/libs/libtf_protos_cc.so -Wl,--whole-archive -l:libtf_protos_cc-static.a -L$DIR/packaging/libs/ -Wl,--no-whole-archive || exit 1
5593

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/bin/bash
2+
3+
# Get the directory where the script is stored
4+
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5+
6+
if [ ! -d $DIR/packaging/headers ]; then
7+
echo Get the Tensorflow C++ headers with 2_make_wheel_for_headers.sh script
8+
exit 1
9+
fi
10+
if [ ! -d $DIR/packaging/libs ]; then
11+
echo Get the Tensorflow C++ libraries with the 3_build_tensorflow_cpp_generic_cuda_x86_64.sh script
12+
exit 1
13+
fi
14+
15+
#
16+
# Generate the Debian package
17+
#
18+
19+
# Get some git information
20+
cd $DIR/tensorflow
21+
TAG=1.13.1
22+
COMMIT=6612da8951
23+
DATE=20190225
24+
25+
# Configure & build the package
26+
cd $DIR/packaging
27+
rm -rf debian/.debhelper debian/tensorflow-cpp-*
28+
rm -rf debian/debhelper-build-stamp debian/files
29+
cmake . -DGIT_TAG=${TAG} -DGIT_COMMIT=${COMMIT} -DGIT_DATE=${DATE} -DPKG_SUFFIX=generic-cuda -DCMAKE_INSTALL_PREFIX=/usr -DPKG_ARCH=amd64 -DRELEASE_MODE=OFF
30+
dpkg-buildpackage -rfakeroot -b -nc
31+
32+
# Make a plain tar file
33+
tar -C ./debian/tensorflow-cpp-generic-cuda/ -cf ../tensorflow-cpp-generic-cuda_${TAG}~git${DATE}~${COMMIT}.tar usr/
34+
pxz -9 ../tensorflow-cpp-generic-cuda_${TAG}~git${DATE}~${COMMIT}.tar
35+
36+
echo READY! Generic/CUDA x86_64 package is generated!

4_generate_generic_x86_64_package.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ fi
2222

2323
# Get some git information
2424
cd $DIR/tensorflow
25-
TAG=$(git describe --tags $(git rev-list --tags --max-count=1) | tr -d 'v')
25+
#TAG=$(git describe --tags $(git rev-list --tags --max-count=1) | tr -d 'v')
26+
TAG=1.13.1
2627
COMMIT=$(git rev-parse --short HEAD)
2728
DATE=$(git log -1 --date=short --pretty=format:%cd | tr -d '-')
2829

4_generate_optimized_cuda_x86_64_package.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ fi
1818

1919
# Get some git information
2020
cd $DIR/tensorflow
21-
TAG=1.10.0fix2
22-
COMMIT=56e4ea405d
23-
DATE=20180810
21+
TAG=1.13.1
22+
COMMIT=6612da8951
23+
DATE=20190225
2424

2525
# Configure & build the package
2626
cd $DIR/packaging

packaging/CMakeLists.txt

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,16 @@ IF (NOT RELEASE_MODE)
2626

2727
SET(TENSORFLOWCPP_VERSION ${GIT_TAG})
2828
SET(PKG_CONFLICTS "")
29-
IF (${PKG_SUFFIX} STREQUAL "generic")
30-
SET(PKG_CONFLICTS tensorflow-cpp-optimized,tensorflow-cpp-rpi,tensorflow-cpp-optimized-cuda)
29+
IF (${PKG_SUFFIX} STREQUAL "generic-cuda")
30+
SET(PKG_CONFLICTS tensorflow-cpp-optimized-cuda,tensorflow-cpp-rpi,tensorflow-cpp-generic,tensorflow-cpp-optimized)
31+
ELSEIF (${PKG_SUFFIX} STREQUAL "optimized-cuda")
32+
SET(PKG_CONFLICTS tensorflow-cpp-generic-cuda,tensorflow-cpp-rpi,tensorflow-cpp-generic,tensorflow-cpp-optimized)
33+
ELSEIF (${PKG_SUFFIX} STREQUAL "generic")
34+
SET(PKG_CONFLICTS tensorflow-cpp-optimized,tensorflow-cpp-rpi,tensorflow-cpp-generic-cuda,tensorflow-cpp-optimized-cuda)
3135
ELSEIF (${PKG_SUFFIX} STREQUAL "optimized")
32-
SET(PKG_CONFLICTS tensorflow-cpp-generic,tensorflow-cpp-rpi,tensorflow-cpp-optimized-cuda)
36+
SET(PKG_CONFLICTS tensorflow-cpp-generic,tensorflow-cpp-rpi,tensorflow-cpp-generic-cuda,tensorflow-cpp-optimized-cuda)
3337
ELSEIF (${PKG_SUFFIX} STREQUAL "rpi")
34-
SET(PKG_CONFLICTS tensorflow-cpp-generic,tensorflow-cpp-optimized,tensorflow-cpp-optimized-cuda)
35-
ELSE ()
36-
SET(PKG_CONFLICTS tensorflow-cpp-generic,tensorflow-cpp-optimized,tensorflow-cpp-rpi)
38+
SET(PKG_CONFLICTS tensorflow-cpp-generic,tensorflow-cpp-optimized,tensorflow-cpp-generic-cuda,tensorflow-cpp-optimized-cuda)
3739
ENDIF ()
3840

3941
IF (${PKG_SUFFIX} STREQUAL "generic" OR ${PKG_SUFFIX} STREQUAL "optimized")
@@ -49,15 +51,17 @@ IF (NOT RELEASE_MODE)
4951
SET(TENSORFLOWCPP_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include/tensorflow-cpp ${CMAKE_INSTALL_PREFIX}/include/tensorflow-cpp/external/nsync/public)
5052

5153
SET(TENSORFLOWCPP_LIBS -Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp -L${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp
52-
-ltensorflow-core -Wl,--no-as-needed -lprotobuf-tf ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-tf.a
54+
-ltensorflow-core -Wl,--no-as-needed -lprotobuf-tf ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libabsl.a
55+
${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-tf.a ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-cpp-tf.a
5356
${EXTRA_LIBS} -Wl,--as-needed -ldl -lpthread)
5457
SET(TENSORFLOWCPP_STATIC_LIBS -Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp -L${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp
5558
-Wl,--whole-archive ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libtensorflow-core-static.a ${EXTRA_STATIC_LIBS}
56-
${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libprotobuf-tf-static.a -Wl,--no-whole-archive ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-tf.a
59+
${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libprotobuf-tf-static.a -Wl,--no-whole-archive ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libabsl.a
60+
${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-tf.a ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libnsync-cpp-tf.a
5761
${EXTRA_LIBS} -ldl -lpthread)
5862

5963
# Override TENSORFLOWCPP_LIBS and TENSORFLOWCPP_STATIC_LIBS for CUDA version
60-
IF (${PKG_SUFFIX} STREQUAL "optimized-cuda")
64+
IF (${PKG_SUFFIX} STREQUAL "generic-cuda" OR ${PKG_SUFFIX} STREQUAL "optimized-cuda")
6165
SET(TENSORFLOWCPP_LIBS -Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp -L${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp
6266
-ltensorflow_cc -Wl,--no-as-needed ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp/libprotobuf.a -Wl,--as-needed)
6367
SET(TENSORFLOWCPP_STATIC_LIBS "")
@@ -77,13 +81,13 @@ ELSE ()
7781
SET(EXTRA_INSTALL_LIBS "")
7882
ENDIF ()
7983

80-
SET(INSTALL_LIBS libs/libnsync-tf.a libs/libprotobuf-tf.so libs/libprotobuf-tf-static.a libs/libtensorflow-core.so libs/libtensorflow-core-static.a
84+
SET(INSTALL_LIBS libs/libabsl.a libs/libnsync-tf.a libs/libnsync-cpp-tf.a libs/libprotobuf-tf.so libs/libprotobuf-tf-static.a libs/libtensorflow-core.so libs/libtensorflow-core-static.a
8185
${EXTRA_INSTALL_LIBS})
82-
IF (${PKG_SUFFIX} STREQUAL "optimized-cuda")
86+
IF (${PKG_SUFFIX} STREQUAL "generic-cuda" OR ${PKG_SUFFIX} STREQUAL "optimized-cuda")
8387
SET(INSTALL_LIBS libs/libprotobuf.a libs/libtensorflow_cc.so)
8488
ENDIF ()
8589

86-
INSTALL(DIRECTORY headers/Eigen headers/google headers/tensorflow headers/third_party headers/unsupported
90+
INSTALL(DIRECTORY headers/absl headers/Eigen headers/google headers/tensorflow headers/third_party headers/unsupported
8791
DESTINATION ${CMAKE_INSTALL_PREFIX}/include/tensorflow-cpp)
8892
INSTALL(FILES ${INSTALL_LIBS}
8993
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/tensorflow-cpp)

0 commit comments

Comments
 (0)