[cmake] don't link to libstdc++ (#707)
This commit is contained in:
parent
5e14e5f65d
commit
90f01bad63
|
@ -519,6 +519,19 @@ endif ()
|
||||||
add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_headers})
|
add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_headers})
|
||||||
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
|
|
||||||
|
if (UNIX OR MINGW)
|
||||||
|
# Make symbols link locally
|
||||||
|
link_libraries(-Bsymbolic-functions)
|
||||||
|
|
||||||
|
# Make sure we don't link to libstdc++
|
||||||
|
set (CMAKE_CXX_FLAGS "-fno-rtti -fno-exceptions ${CMAKE_CXX_FLAGS}")
|
||||||
|
if (NOT APPLE)
|
||||||
|
set (CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
|
||||||
|
set (CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
|
||||||
|
set_target_properties(harfbuzz PROPERTIES LINKER_LANGUAGE C)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
## Define harfbuzz-gobject library
|
## Define harfbuzz-gobject library
|
||||||
if (HB_HAVE_GOBJECT)
|
if (HB_HAVE_GOBJECT)
|
||||||
|
@ -767,34 +780,33 @@ endif ()
|
||||||
|
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
if (UNIX)
|
if (UNIX OR MINGW)
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
# does some "make" stuff inside
|
# does some "make" stuff inside
|
||||||
#add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh)
|
#add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh)
|
||||||
#add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh)
|
#set_tests_properties(check-defs.sh PROPERTIES ENVIRONMENT "libs=.")
|
||||||
#set_tests_properties(check-defs.sh check-libstdc++.sh PROPERTIES ENVIRONMENT "libs=.")
|
|
||||||
|
|
||||||
add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
|
add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
|
||||||
set_tests_properties(check-symbols.sh PROPERTIES ENVIRONMENT "libs=.")
|
set_tests_properties(check-symbols.sh PROPERTIES ENVIRONMENT "libs=.")
|
||||||
|
|
||||||
if (NOT APPLE)
|
if (NOT APPLE)
|
||||||
|
add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh)
|
||||||
add_test(NAME check-static-inits.sh
|
add_test(NAME check-static-inits.sh
|
||||||
COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
|
COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
|
||||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # ugly hack
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # ugly hack
|
||||||
)
|
)
|
||||||
set_tests_properties(check-static-inits.sh PROPERTIES ENVIRONMENT "libs=.")
|
set_tests_properties(check-libstdc++.sh check-static-inits.sh
|
||||||
|
PROPERTIES ENVIRONMENT "libs=.")
|
||||||
endif ()
|
endif ()
|
||||||
else ()
|
|
||||||
message(WARN "Enable BUILD_SHARED_LIBS for more tests.")
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (IN_HB_DIST)
|
add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh)
|
||||||
add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh)
|
||||||
add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
add_test(NAME check-externs.sh COMMAND ./check-externs.sh)
|
||||||
endif ()
|
add_test(NAME check-includes.sh COMMAND ./check-includes.sh)
|
||||||
|
set_tests_properties(
|
||||||
add_test(NAME check-externs.sh COMMAND ./check-externs.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
check-c-linkage-decls.sh check-header-guards.sh check-externs.sh check-includes.sh
|
||||||
add_test(NAME check-includes.sh COMMAND ./check-includes.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
PROPERTIES WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Needs to come last so that variables defined above are passed to
|
# Needs to come last so that variables defined above are passed to
|
||||||
|
|
Loading…
Reference in New Issue