|
|
|
@ -179,12 +179,24 @@ if(CV_GCC OR CV_CLANG) |
|
|
|
|
string(REPLACE "-ffunction-sections" "" ${flags} "${${flags}}") |
|
|
|
|
string(REPLACE "-fdata-sections" "" ${flags} "${${flags}}") |
|
|
|
|
endforeach() |
|
|
|
|
elseif(NOT ((IOS OR ANDROID) AND NOT BUILD_SHARED_LIBS) AND NOT MSVC) |
|
|
|
|
# Remove unreferenced functions: function level linking |
|
|
|
|
add_extra_compiler_option(-ffunction-sections) |
|
|
|
|
add_extra_compiler_option(-fdata-sections) |
|
|
|
|
if(NOT APPLE AND NOT OPENCV_SKIP_GC_SECTIONS) |
|
|
|
|
set(OPENCV_EXTRA_EXE_LINKER_FLAGS "${OPENCV_EXTRA_EXE_LINKER_FLAGS} -Wl,--gc-sections") |
|
|
|
|
else() |
|
|
|
|
if(MSVC) |
|
|
|
|
# TODO: Clang/C2 is not supported |
|
|
|
|
elseif(((IOS OR ANDROID) AND NOT BUILD_SHARED_LIBS) AND NOT OPENCV_FORCE_FUNCTIONS_SECTIONS) |
|
|
|
|
# don't create separate sections for functions/data, reduce package size |
|
|
|
|
else() |
|
|
|
|
# Remove unreferenced functions: function level linking |
|
|
|
|
add_extra_compiler_option(-ffunction-sections) |
|
|
|
|
add_extra_compiler_option(-fdata-sections) |
|
|
|
|
if(NOT OPENCV_SKIP_GC_SECTIONS) |
|
|
|
|
if(APPLE) |
|
|
|
|
set(OPENCV_EXTRA_EXE_LINKER_FLAGS "${OPENCV_EXTRA_EXE_LINKER_FLAGS} -Wl,-dead_strip") |
|
|
|
|
set(OPENCV_EXTRA_SHARED_LINKER_FLAGS "${OPENCV_EXTRA_SHARED_LINKER_FLAGS} -Wl,-dead_strip") |
|
|
|
|
else() |
|
|
|
|
set(OPENCV_EXTRA_EXE_LINKER_FLAGS "${OPENCV_EXTRA_EXE_LINKER_FLAGS} -Wl,--gc-sections") |
|
|
|
|
set(OPENCV_EXTRA_SHARED_LINKER_FLAGS "${OPENCV_EXTRA_SHARED_LINKER_FLAGS} -Wl,--gc-sections") |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|