Skip to content

Commit cafb37e

Browse files
committed
Build protobuf statically.
1 parent 7c0f237 commit cafb37e

3 files changed

Lines changed: 59 additions & 52 deletions

File tree

CMake/External_Caffe.cmake

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -75,33 +75,24 @@ endif()
7575
set( CAFFE_PROTOBUF_ARGS )
7676

7777
if(fletch_ENABLE_Protobuf)
78-
get_system_library_name( protobuf protobuf_libname )
79-
get_system_library_name( protobuf-lite protobuf-lite_libname )
80-
get_system_library_name( protoc protoc_libname )
81-
82-
set( CAFFE_PROTOBUF_ARGS
83-
-DPROTOBUF_INCLUDE_DIR:PATH=${fletch_BUILD_INSTALL_PREFIX}/include
84-
-DPROTOBUF_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf_libname}
85-
-DPROTOBUF_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf_libname}
86-
-DPROTOBUF_LITE_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf-lite_libname}
87-
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf-lite_libname}
88-
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${fletch_BUILD_INSTALL_PREFIX}/bin/protoc
89-
-DPROTOBUF_PROTOC_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protoc_libname}
90-
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protoc_libname}
91-
)
78+
set(protobuf_include ${fletch_BUILD_INSTALL_PREFIX}/include)
79+
set(protobuf_exe ${fletch_BUILD_INSTALL_PREFIX}/bin/protoc)
9280
else()
93-
set( CAFFE_PROTOBUF_ARGS
94-
-DPROTOBUF_INCLUDE_DIR:PATH=${PROTOBUF_INCLUDE_DIR}
95-
-DPROTOBUF_LIBRARY:PATH=${PROTOBUF_LIBRARY}
96-
-DPROTOBUF_LIBRARY_DEBUG:PATH=${PROTOBUF_LIBRARY_DEBUG}
97-
-DPROTOBUF_LITE_LIBRARY:PATH=${PROTOBUF_LITE_LIBRARY}
98-
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${PROTOBUF_LITE_LIBRARY_DEBUG}
99-
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${PROTOBUF_PROTOC_EXECUTABLE}
100-
-DPROTOBUF_PROTOC_LIBRARY:PATH=${PROTOBUF_PROTOC_LIBRARY}
101-
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${PROTOBUF_PROTOC_LIBRARY_DEBUG}
102-
)
81+
set(protobuf_include ${PROTOBUF_INCLUDE_DIR})
82+
set(protobuf_exe ${PROTOBUF_PROTOC_EXECUTABLE})
10383
endif()
10484

85+
set( CAFFE_PROTOBUF_ARGS
86+
-DPROTOBUF_INCLUDE_DIR:PATH=${protobuf_include}
87+
-DPROTOBUF_LIBRARY:PATH=${PROTOBUF_LIBRARY}
88+
-DPROTOBUF_LIBRARY_DEBUG:PATH=${PROTOBUF_LIBRARY}
89+
-DPROTOBUF_LITE_LIBRARY:PATH=${PROTOBUF_LITE_LIBRARY}
90+
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${PROTOBUF_LITE_LIBRARY}
91+
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${protobuf_exe}
92+
-DPROTOBUF_PROTOC_LIBRARY:PATH=${PROTOBUF_PROTOC_LIBRARY}/
93+
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${PROTOBUF_PROTOC_LIBRARY}
94+
)
95+
10596
if(fletch_ENABLE_OpenCV)
10697
set( CAFFE_OPENCV_ARGS
10798
-DOpenCV_DIR:PATH=${fletch_BUILD_PREFIX}/src/OpenCV-build

CMake/External_Caffe_Segnet.cmake

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -76,33 +76,24 @@ endif()
7676
set( CAFFE_SEGNET_PROTOBUF_ARGS )
7777

7878
if(fletch_ENABLE_Protobuf)
79-
get_system_library_name( protobuf protobuf_libname )
80-
get_system_library_name( protobuf-lite protobuf-lite_libname )
81-
get_system_library_name( protoc protoc_libname )
82-
83-
set( CAFFE_SEGNET_PROTOBUF_ARGS
84-
-DPROTOBUF_INCLUDE_DIR:PATH=${fletch_BUILD_INSTALL_PREFIX}/include
85-
-DPROTOBUF_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf_libname}
86-
-DPROTOBUF_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf_libname}
87-
-DPROTOBUF_LITE_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf-lite_libname}
88-
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protobuf-lite_libname}
89-
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${fletch_BUILD_INSTALL_PREFIX}/bin/protoc
90-
-DPROTOBUF_PROTOC_LIBRARY:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protoc_libname}
91-
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/${protoc_libname}
92-
)
79+
set(protobuf_include ${fletch_BUILD_INSTALL_PREFIX}/include)
80+
set(protobuf_exe ${fletch_BUILD_INSTALL_PREFIX}/bin/protoc)
9381
else()
94-
set( CAFFE_SEGNET_PROTOBUF_ARGS
95-
-DPROTOBUF_INCLUDE_DIR:PATH=${PROTOBUF_INCLUDE_DIR}
96-
-DPROTOBUF_LIBRARY:PATH=${PROTOBUF_LIBRARY}
97-
-DPROTOBUF_LIBRARY_DEBUG:PATH=${PROTOBUF_LIBRARY_DEBUG}
98-
-DPROTOBUF_LITE_LIBRARY:PATH=${PROTOBUF_LITE_LIBRARY}
99-
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${PROTOBUF_LITE_LIBRARY_DEBUG}
100-
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${PROTOBUF_PROTOC_EXECUTABLE}
101-
-DPROTOBUF_PROTOC_LIBRARY:PATH=${PROTOBUF_PROTOC_LIBRARY}
102-
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${PROTOBUF_PROTOC_LIBRARY_DEBUG}
103-
)
82+
set(protobuf_include ${PROTOBUF_INCLUDE_DIR})
83+
set(protobuf_exe ${PROTOBUF_PROTOC_EXECUTABLE})
10484
endif()
10585

86+
set( CAFFE_SEGNET_PROTOBUF_ARGS
87+
-DPROTOBUF_INCLUDE_DIR:PATH=${protobuf_include}
88+
-DPROTOBUF_LIBRARY:PATH=${PROTOBUF_LIBRARY}
89+
-DPROTOBUF_LIBRARY_DEBUG:PATH=${PROTOBUF_LIBRARY}
90+
-DPROTOBUF_LITE_LIBRARY:PATH=${PROTOBUF_LITE_LIBRARY}
91+
-DPROTOBUF_LITE_LIBRARY_DEBUG:PATH=${PROTOBUF_LITE_LIBRARY}
92+
-DPROTOBUF_PROTOC_EXECUTABLE:PATH=${protobuf_exe}
93+
-DPROTOBUF_PROTOC_LIBRARY:PATH=${PROTOBUF_PROTOC_LIBRARY}/
94+
-DPROTOBUF_PROTOC_LIBRARY_DEBUG:PATH=${PROTOBUF_PROTOC_LIBRARY}
95+
)
96+
10697
if(fletch_ENABLE_OpenCV)
10798
set( CAFFE_SEGNET_OPENCV_ARGS
10899
-DOpenCV_DIR:PATH=${fletch_BUILD_PREFIX}/src/OpenCV-build
@@ -176,7 +167,6 @@ if(fletch_ENABLE_HDF5)
176167
get_system_library_name( hdf5_cpp_debug hdf5_cpp_libname )
177168
get_system_library_name( hdf5_hl_cpp_debug hdf5_hl_cpp_libname )
178169

179-
180170
else()
181171

182172
get_system_library_name( hdf5 hdf5_libname )
@@ -270,7 +260,6 @@ else()
270260
)
271261
endif()
272262

273-
274263
set (Caffe_Segnet_PATCH_DIR "${fletch_SOURCE_DIR}/Patches/Caffe_Segnet/${Caffe_Segnet_version}")
275264
if (EXISTS ${Caffe_Segnet_PATCH_DIR})
276265
set(

CMake/External_Protobuf.cmake

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11

2+
set(protobuf_BUILD_SHARED_LIBS "OFF")
23
if (Protobuf_SELECT_VERSION STREQUAL "3.9.0")
34
ExternalProject_Add(Protobuf
45
# PREFIX protobuf
@@ -10,9 +11,10 @@ if (Protobuf_SELECT_VERSION STREQUAL "3.9.0")
1011
CMAKE_ARGS
1112
${COMMON_CMAKE_ARGS}
1213
-Dprotobuf_BUILD_TESTS:BOOL=OFF
13-
-Dprotobuf_BUILD_EXAMPLES:BOOL=OFF
14-
-Dprotobuf_BUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
14+
-Dprotobuf_BUILD_EXAMPLES:BOOL=${protobuf_BUILD_SHARED_LIBS}
15+
-Dprotobuf_BUILD_SHARED_LIBS:BOOL=OFF
1516
-Dprotobuf_MSVC_STATIC_RUNTIME:BOOL=OFF#Don't change MSVC runtime settings (/MD or /MT)
17+
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE
1618
-Dprotobuf_WITH_ZLIB:BOOL=OFF
1719
)
1820
elseif (NOT WIN32)
@@ -48,10 +50,35 @@ fletch_external_project_force_install(PACKAGE Protobuf)
4850

4951
set(Protobuf_ROOT ${fletch_BUILD_INSTALL_PREFIX} CACHE PATH "")
5052

53+
if(NOT protobuf_BUILD_SHARED_LIBS)
54+
if(WIN32)
55+
set(PROTOBUF_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf.lib")
56+
set(PROTOBUF_LITE_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf-lite.lib")
57+
set(PROTOBUF_PROTOC_LIBRARY "${Protobuf_ROOT}/lib/libprotc.lib")
58+
else()
59+
set(PROTOBUF_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf.a")
60+
set(PROTOBUF_LITE_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf-lite.a")
61+
set(PROTOBUF_PROTOC_LIBRARY "${Protobuf_ROOT}/lib/libprotc.a")
62+
endif()
63+
else()
64+
if(WIN32)
65+
set(PROTOBUF_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf.lib")
66+
set(PROTOBUF_LITE_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf-lite.lib")
67+
set(PROTOBUF_PROTOC_LIBRARY "${Protobuf_ROOT}/lib/libprotc.lib")
68+
else()
69+
set(PROTOBUF_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf.so")
70+
set(PROTOBUF_LITE_LIBRARY "${Protobuf_ROOT}/lib/libprotobuf-lite.so")
71+
set(PROTOBUF_PROTOC_LIBRARY "${Protobuf_ROOT}/lib/libprotc.so")
72+
endif()
73+
endif()
74+
5175
file(APPEND ${fletch_CONFIG_INPUT} "
5276
#######################################
5377
# Google Protobuf
5478
#######################################
5579
set(Protobuf_ROOT \${fletch_ROOT})
80+
set(PROTOBUF_LIBRARY \${PROTOBUF_LIBRARY})
81+
set(PROTOBUF_LITE_LIBRARY \${PROTOBUF_LITE_LIBRARY})
82+
set(PROTOBUF_PROTOC_LIBRARY \${PROTOBUF_PROTOC_LIBRARY})
5683
")
5784

0 commit comments

Comments
 (0)