Fix missing libraries problems (seen on Cygwin).

* Change: In bootstrap/cmake_modules/FindBootstrap.cmake, add a
    "-Wl,--no-undefined" to the C++/ld flags to force checking of
    undefined symbol at link time.
This commit is contained in:
Jean-Paul Chaput 2023-03-07 17:29:40 +01:00
parent aafec8c64c
commit 881e97bbd3
5 changed files with 18 additions and 16 deletions

View File

@ -83,20 +83,20 @@
#set(DEBUG_FLAGS "-g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") #set(DEBUG_FLAGS "-g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
set(DEBUG_FLAGS "-g") set(DEBUG_FLAGS "-g")
if(CYGWIN) if(CYGWIN)
set(ADDTIONAL_FLAGS "-D_GLIBCXX_USE_C99") set(ADDITIONAL_FLAGS "-D_GLIBCXX_USE_C99")
set(CXX_STANDARD "gnu++11") set(CXX_STANDARD "gnu++11")
else() else()
set(ADDTIONAL_FLAGS "") set(ADDITIONAL_FLAGS "-Wl,--no-undefined")
set(CXX_STANDARD "c++11") set(CXX_STANDARD "c++11")
endif() endif()
#set(CMAKE_C_FLAGS_DEBUG " -Wall -fsanitize=address ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE) #set(CMAKE_C_FLAGS_DEBUG " -Wall -fsanitize=address ${ADDITIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE)
set(CMAKE_C_FLAGS_DEBUG " -Wall ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE) set(CMAKE_C_FLAGS_DEBUG " -Wall ${ADDITIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE)
set(CMAKE_C_FLAGS_RELEASE " -Wall -O2 ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE) set(CMAKE_C_FLAGS_RELEASE " -Wall -O2 ${ADDITIONAL_FLAGS} -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE)
#set(CMAKE_C_FLAGS_RELEASE " -Wall -fsanitize=address ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE) #set(CMAKE_C_FLAGS_RELEASE " -Wall -fsanitize=address ${ADDITIONAL_FLAGS} -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE)
#set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall -fsanitize=address ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE) #set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall -fsanitize=address ${ADDITIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE) set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${ADDITIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE) set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 ${ADDITIONAL_FLAGS} -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE)
#set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -fsanitize=address ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE) #set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -fsanitize=address ${ADDITIONAL_FLAGS} -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE)
if ( NOT CMAKE_BUILD_TYPE ) if ( NOT CMAKE_BUILD_TYPE )
@ -413,7 +413,7 @@ endif()
add_library( ${clib} ${pyCpps} ) add_library( ${clib} ${pyCpps} )
set_target_properties( ${clib} PROPERTIES VERSION ${version} SOVERSION ${soversion}) set_target_properties( ${clib} PROPERTIES VERSION ${version} SOVERSION ${soversion})
#target_compile_definitions( ${clib} PUBLIC Py_LIMITED_API=1) #target_compile_definitions( ${clib} PUBLIC Py_LIMITED_API=1)
target_link_libraries( ${clib} ${deplibs} ) target_link_libraries( ${clib} ${deplibs} )
install( TARGETS ${clib} DESTINATION lib${LIB_SUFFIX} ) install( TARGETS ${clib} DESTINATION lib${LIB_SUFFIX} )
target_link_options( ${clib} PRIVATE "LINKER:--unresolved-symbols=ignore-all") target_link_options( ${clib} PRIVATE "LINKER:--unresolved-symbols=ignore-all")
@ -427,7 +427,7 @@ endif()
PREFIX "" PREFIX ""
OUTPUT_NAME ${pymodule} OUTPUT_NAME ${pymodule}
) )
#target_compile_definitions( ${pytarget} PUBLIC Py_LIMITED_API=1) #target_compile_definitions( ${pytarget} PUBLIC Py_LIMITED_API=1)
target_link_libraries( ${pytarget} ${pyDeplibs} ) target_link_libraries( ${pytarget} ${pyDeplibs} )
target_link_options( ${pytarget} PRIVATE "LINKER:--unresolved-symbols=ignore-all") target_link_options( ${pytarget} PRIVATE "LINKER:--unresolved-symbols=ignore-all")
@ -452,7 +452,7 @@ endif()
add_library( ${pymodule} MODULE ${pyCpps} ) add_library( ${pymodule} MODULE ${pyCpps} )
set_target_properties( ${pymodule} PROPERTIES PREFIX "" ) set_target_properties( ${pymodule} PROPERTIES PREFIX "" )
target_link_libraries( ${pymodule} ${deplibs} ) target_link_libraries( ${pymodule} ${deplibs} )
# target_compile_definitions( ${pymodule} PUBLIC Py_LIMITED_API=1) #target_compile_definitions( ${pymodule} PUBLIC Py_LIMITED_API=1)
install( TARGETS ${pymodule} DESTINATION ${Python_CORIOLISARCH} ) install( TARGETS ${pymodule} DESTINATION ${Python_CORIOLISARCH} )
if( NOT ("${pyIncludes}" STREQUAL "None") ) if( NOT ("${pyIncludes}" STREQUAL "None") )

View File

@ -83,9 +83,11 @@
qtX_add_resources( RCC_SRCS Configuration.qrc ) qtX_add_resources( RCC_SRCS Configuration.qrc )
add_library( configuration ${cpps} ${mocCpps} ${RCC_SRCS} ) add_library( configuration ${cpps} ${mocCpps} ${RCC_SRCS} )
target_link_libraries( configuration ${QtX_LIBRARIES} )
set_target_properties( configuration PROPERTIES VERSION 1.0 SOVERSION 1 ) set_target_properties( configuration PROPERTIES VERSION 1.0 SOVERSION 1 )
add_library( pytypemanager ${pyTypeCpps} ) add_library( pytypemanager ${pyTypeCpps} )
target_link_libraries( pytypemanager hurricane ${Python_LIBRARIES})
set_target_properties( pytypemanager PROPERTIES VERSION 1.0 SOVERSION 1 ) set_target_properties( pytypemanager PROPERTIES VERSION 1.0 SOVERSION 1 )
add_python_module3( "${pyCfgCpps}" add_python_module3( "${pyCfgCpps}"

View File

@ -150,7 +150,7 @@
${UTILITIES_LIBRARY} ${UTILITIES_LIBRARY}
${LIBXML2_LIBRARIES} ${LIBXML2_LIBRARIES}
${QtX_LIBRARIES} ${QtX_LIBRARIES}
${Python_LIBRARIES}
) )
add_library( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} ${pyCpps} ) add_library( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} ${pyCpps} )

View File

@ -11,7 +11,7 @@
) )
add_library ( defzlib ${cpps} ) add_library ( defzlib ${cpps} )
# target_link_libraries ( defzlib def z ) target_link_libraries ( defzlib def z )
set_target_properties ( defzlib PROPERTIES VERSION 5.8 SOVERSION 5 ) set_target_properties ( defzlib PROPERTIES VERSION 5.8 SOVERSION 5 )
install ( TARGETS defzlib DESTINATION lib${LIB_SUFFIX} ) install ( TARGETS defzlib DESTINATION lib${LIB_SUFFIX} )

View File

@ -11,7 +11,7 @@
) )
add_library ( lefzlib ${cpps} ) add_library ( lefzlib ${cpps} )
# target_link_libraries ( lefzlib lef z ) target_link_libraries ( lefzlib lef z )
set_target_properties ( lefzlib PROPERTIES VERSION 5.8 SOVERSION 5 ) set_target_properties ( lefzlib PROPERTIES VERSION 5.8 SOVERSION 5 )
install ( TARGETS lefzlib DESTINATION lib${LIB_SUFFIX} ) install ( TARGETS lefzlib DESTINATION lib${LIB_SUFFIX} )