diff --git a/CMake/FindFLTK.cmake b/CMake/FindFLTK.cmake index 35eb63abb62f3f7431a80c2e63dbfdbb3d7cedd4..1bb6314f31ee6e67e6e999acb59da92fd86af6ab 100644 --- a/CMake/FindFLTK.cmake +++ b/CMake/FindFLTK.cmake @@ -171,7 +171,7 @@ IF(FLTK_BUILT_WITH_CMAKE) # FLTK was build using CMak FL FLTK_USE_SYSTEM_ZLIB ) - ELSE (FLUID_COMMAND) + ELSE (FLUID_COMMAND) # If fluid command is not available we try to use the 1.3.0 version # Create the version string @@ -179,26 +179,52 @@ IF(FLTK_BUILT_WITH_CMAKE) # FLTK was build using CMak # Fluid executable SET(FLTK_FLUID_EXECUTABLE ${FLTK_FLUID_EXECUTABLE} CACHE FILEPATH "Fluid executable") - - SET(FLTK_BASE_LIBRARY ${FLTK_LIB_DIR}/libfltk.so) - SET(FLTK_GL_LIBRARY ${FLTK_LIB_DIR}/libfltk_gl.so) - SET(FLTK_FORMS_LIBRARY ${FLTK_LIB_DIR}/libfltk_forms.so) - SET(FLTK_IMAGES_LIBRARY ${FLTK_LIB_DIR}/libfltk_images.so) + + # Using the fltk shared lib ion a static build does not work (undefined symbol) + IF (BUILD_SHARED_LIBS) + FIND_LIBRARY(FLTK_BASE_LIBRARY + NAMES fltkdll fltkdlld fltk + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_GL_LIBRARY + NAMES fltkgldll fltkgldlld fltk_gl + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_IMAGES_LIBRARY + NAMES fltkimagesdll fltkimagesdlld fltk_images + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_FORMS_LIBRARY + NAMES fltkformsdll fltkformsdlld fltk_forms + PATHS ${FLTK_LIB_DIR}) + ELSE(BUILD_SHARED_LIBS) + FIND_LIBRARY(FLTK_BASE_LIBRARY + NAMES fltk fltkd + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_GL_LIBRARY + NAMES fltkgl fltkgld fltk_gl + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_IMAGES_LIBRARY + NAMES fltkimages fltkimagesd fltk_images + PATHS ${FLTK_LIB_DIR}) + FIND_LIBRARY(FLTK_FORMS_LIBRARY + NAMES fltkforms fltkformsd fltk_forms + PATHS ${FLTK_LIB_DIR}) + ENDIF(BUILD_SHARED_LIBS) ENDIF (FLUID_COMMAND) - - SET(FLTK_IMAGES_LIBS "") - IF(FLFLTK_USE_SYSTEM_JPEG) - SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_jpeg) - ENDIF(FLFLTK_USE_SYSTEM_JPEG) - IF(FLFLTK_USE_SYSTEM_PNG) - SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_png) - ENDIF(FLFLTK_USE_SYSTEM_PNG) - IF(FLFLTK_USE_SYSTEM_ZLIB) - SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_zlib) - ENDIF(FLFLTK_USE_SYSTEM_ZLIB) - SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL - "Extra libraries for fltk_images library.") + +# Disable support for FLTK built with internal version of jpeg/png/zlib +# Those variable were not used further anyhow. +# SET(FLTK_IMAGES_LIBS "") +# IF(FLFLTK_USE_SYSTEM_JPEG) +# SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_jpeg) +# ENDIF(FLFLTK_USE_SYSTEM_JPEG) +# IF(FLFLTK_USE_SYSTEM_PNG) +# SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_png) +# ENDIF(FLFLTK_USE_SYSTEM_PNG) +# IF(FLFLTK_USE_SYSTEM_ZLIB) +# SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_zlib) +# ENDIF(FLFLTK_USE_SYSTEM_ZLIB) +# SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL +# "Extra libraries for fltk_images library.") ELSE(FLTK_BUILT_WITH_CMAKE) # FLTK was not build using CMake diff --git a/CMake/ImportFLTK.cmake b/CMake/ImportFLTK.cmake index cdb5ce42ca30fd52d7fc54132e14434e35249a57..0e2aad4db8a8b21b950552a1cae77637599291f9 100644 --- a/CMake/ImportFLTK.cmake +++ b/CMake/ImportFLTK.cmake @@ -43,7 +43,16 @@ IF(OTB_USE_VISU_GUI) # Only if we used a FLTK 1.3.0 because in FLTK 1.1.>=9 is already done IF(FLTK_USE_FILE) - INCLUDE(${FLTK_USE_FILE}) + INCLUDE_DIRECTORIES(${FLTK_INCLUDE_DIR}) + + # UseFLTK is buggy on windows, so we do not import it + # The definition of FLTK_EXE_LINKER_FLAGS in FLTKConfig.cmake + # is not valid and we end up with + # CMAKE_EXE_LINKER_FLAGS = " /STACK:10000000 /machine:X86 ; /STACK:10000000 /machine:X86" + # The ";" in the middle creates link error : + # impossible d'ouvrir le fichier en entrΘe ';.obj' + + # INCLUDE(${FLTK_USE_FILE}) ENDIF(FLTK_USE_FILE) ELSE(OTB_USE_EXTERNAL_FLTK) @@ -62,8 +71,8 @@ IF(OTB_USE_VISU_GUI) ENDIF(OTB_USE_EXTERNAL_FLTK) - SET(OTB_VISU_GUI_LIBRARIES "${FLTK_LIBRARIES};${OPENGL_LIBRARIES};${FLTK_PLATFORM_DEPENDENT_LIBS}") - +# SET(OTB_VISU_GUI_LIBRARIES "${FLTK_LIBRARIES};${OPENGL_LIBRARIES};${FLTK_PLATFORM_DEPENDENT_LIBS}") + SET(OTB_VISU_GUI_LIBRARIES "${FLTK_LIBRARIES}") IF(APPLE) SET(OTB_VISU_GUI_LIBRARIES "${OTB_VISU_GUI_LIBRARIES};-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib") ENDIF(APPLE)