[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). Todo: dll names and target directories may need some changes. Todo: Shared libraries under Linux with CMake don't work yet: /usr/bin/ld: ../lib/libfltk.a(Fl.cxx.o): relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11865 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
9b9fc92768
commit
ba56c33726
@ -29,17 +29,17 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
|
||||
if (MSVC)
|
||||
set (LIBNAME_DEBUG "${LIBNAME}d")
|
||||
set (LIBRARY_NAME_DEBUG "${LIBRARY_NAME}d")
|
||||
else ()
|
||||
set (LIBNAME_DEBUG "${LIBNAME}")
|
||||
set (LIBRARY_NAME_DEBUG "${LIBRARY_NAME}")
|
||||
endif (MSVC)
|
||||
|
||||
add_library(${LIBRARY_NAME} ${LIBTYPE} ${LIBFILES})
|
||||
|
||||
set_target_properties(${LIBRARY_NAME}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
DEBUG_OUTPUT_NAME "${LIBNAME_DEBUG}"
|
||||
OUTPUT_NAME ${LIBRARY_NAME}
|
||||
DEBUG_OUTPUT_NAME ${LIBRARY_NAME_DEBUG}
|
||||
CLEAN_DIRECT_OUTPUT TRUE
|
||||
COMPILE_DEFINITIONS "FL_LIBRARY"
|
||||
)
|
||||
@ -55,7 +55,7 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
||||
|
||||
if (MSVC)
|
||||
if (OPTION_LARGE_FILE)
|
||||
set_target_properties(${LIBNAME}
|
||||
set_target_properties(${LIBRARYNAME}
|
||||
PROPERTIES
|
||||
LINK_FLAGS /LARGEADDRESSAWARE
|
||||
)
|
||||
|
@ -38,6 +38,15 @@ find_file(HAVE_SYS_STDTYPES_H sys/stdtypes.h)
|
||||
find_file(HAVE_X11_XREGION_H X11/Xregion.h)
|
||||
find_path(HAVE_XDBE_H Xdbe.h PATH_SUFFIXES X11/extensions extensions)
|
||||
|
||||
if (MSVC)
|
||||
message(STATUS "Note: The following three headers should all be found!")
|
||||
message(STATUS "HAVE_GL_GL_H = '${HAVE_GL_GL_H}'")
|
||||
message(STATUS "HAVE_GL_GLU_H = '${HAVE_GL_GLU_H}'")
|
||||
message(STATUS "HAVE_LOCALE_H = '${HAVE_LOCALE_H}'")
|
||||
message(STATUS "If one of these headers was not found, run cmake-gui ...")
|
||||
message(STATUS "... again from a Visual Studio developer command prompt!")
|
||||
endif (MSVC)
|
||||
|
||||
# Simulate the behavior of autoconf macro AC_HEADER_DIRENT, see:
|
||||
# https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Particular-Headers.html
|
||||
# "Check for the following header files. For the first one that is found
|
||||
|
@ -285,8 +285,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})
|
||||
@ -325,12 +324,12 @@ if (OPTION_BUILD_SHARED_LIBS)
|
||||
###################################################################
|
||||
|
||||
FL_ADD_LIBRARY(fltk_forms SHARED "${FLCPPFILES}")
|
||||
target_link_libraries(fltk_forms_SHARED fltk_SHARED)
|
||||
target_link_libraries(fltk_forms_SHARED fltk)
|
||||
|
||||
###################################################################
|
||||
|
||||
FL_ADD_LIBRARY(fltk_images SHARED "${IMGCPPFILES}")
|
||||
target_link_libraries(fltk_images_SHARED fltk_SHARED)
|
||||
target_link_libraries(fltk_images_SHARED fltk)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
target_link_libraries(fltk_images_SHARED ${FLTK_JPEG_LIBRARIES})
|
||||
@ -354,7 +353,7 @@ if (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
FL_ADD_LIBRARY(fltk_gl SHARED "${GLCPPFILES}")
|
||||
target_link_libraries(fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES})
|
||||
target_link_libraries(fltk_gl_SHARED fltk ${OPENGL_LIBRARIES})
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
endif (OPTION_BUILD_SHARED_LIBS)
|
||||
|
Loading…
x
Reference in New Issue
Block a user