From 78d853891c145776e19e412b4956fed87a33bf60 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Tue, 9 Aug 2016 14:11:42 +0000 Subject: [CMake] Fix Windows dll build with Visual Studio generator. Now you can set OPTION_BUILD_SHARED_LIBS:BOOL=ON to build FLTK dll's with Visual Studio. Tested and works (Visual Studio 2010 + 2015). Note: Linux fixes included, tested and works (Ubuntu). Todo: dll names and target directories may need some changes. We really need to get rid of that "_SHARED" suffix in .so names. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11867 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/CMakeLists.txt | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3801a7d8a..03ea19cf4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -492,8 +492,7 @@ target_link_libraries(fltk_forms fltk) ####################################################################### FL_ADD_LIBRARY(fltk_images STATIC "${IMGCPPFILES}") -target_link_libraries(fltk_images fltk ${FLTK_PNG_LIBRARIES} - ${FLTK_JPEG_LIBRARIES} ${FLTK_ZLIB_LIBRARIES}) +target_link_libraries(fltk_images fltk) if (OPTION_USE_SYSTEM_LIBJPEG) target_link_libraries(fltk_images ${FLTK_JPEG_LIBRARIES}) @@ -524,6 +523,13 @@ endif (OPENGL_FOUND) # Build shared libraries (optional) ####################################################################### +# Note to devs: As of 08 Aug 2016 we can build shared libs (dlls) +# under Windows with Visual Studio (MSVC) but we can't link for instance +# fltk_images_SHARED with fltk_SHARED - we have to use fltk, i.e. the +# "static" object library instead. I don't know how to fix this, but +# at least we can build shared libraries (dlls) with Visual Studio. +# AlbrechtS + if (OPTION_BUILD_SHARED_LIBS) FL_ADD_LIBRARY(fltk SHARED "${SHARED_FILES}") @@ -532,12 +538,20 @@ if (OPTION_BUILD_SHARED_LIBS) ################################################################### FL_ADD_LIBRARY(fltk_forms SHARED "${FLCPPFILES}") - target_link_libraries(fltk_forms_SHARED fltk_SHARED) + if (MSVC) + target_link_libraries(fltk_forms_SHARED fltk) + else () + target_link_libraries(fltk_forms_SHARED fltk_SHARED) + endif (MSVC) ################################################################### FL_ADD_LIBRARY(fltk_images SHARED "${IMGCPPFILES}") - target_link_libraries(fltk_images_SHARED fltk_SHARED) + if (MSVC) + target_link_libraries(fltk_images_SHARED fltk) + else () + target_link_libraries(fltk_images_SHARED fltk_SHARED) + endif (MSVC) if (OPTION_USE_SYSTEM_LIBJPEG) target_link_libraries(fltk_images_SHARED ${FLTK_JPEG_LIBRARIES}) @@ -560,8 +574,12 @@ if (OPTION_BUILD_SHARED_LIBS) ################################################################### if (OPENGL_FOUND) - FL_ADD_LIBRARY(fltk_gl SHARED "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}") - target_link_libraries(fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES}) + FL_ADD_LIBRARY(fltk_gl SHARED "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}") + if (MSVC) + target_link_libraries(fltk_gl_SHARED fltk ${OPENGL_LIBRARIES}) + else () + target_link_libraries(fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES}) + endif (MSVC) endif (OPENGL_FOUND) endif (OPTION_BUILD_SHARED_LIBS) -- cgit v1.2.3