From 7ff5f34c5ec3b44e3bc6a022122fc101ed8f584f Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Sat, 22 Apr 2017 20:05:01 +0000 Subject: [PATCH] Added FREEGLUT_REPLACE_GLUT configure option for MS Windows. It provides back compatibility with older (autotools based) freeglut versions. Also it simplifies build rules for crossplatform programs: they may be linked with -lglut regardless of the system and library type (shared/static). Patch is originally prepared for MXE project (http://mxe.cc/). (cherry picked from commit cd9ac605ec4615569121e0e9b6bc058684bebfe3) git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1793 7f0cb862-5218-0410-a997-914c9d46530a --- CMakeLists.txt | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fae09a..4d6e1f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,11 +53,16 @@ ENDIF() # OpenGL ES support OPTION(FREEGLUT_GLES "Use OpenGL ES (requires EGL)" OFF) +# option to build either as "glut" (ON) or "freeglut" (OFF) +IF(WIN32) + OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" OFF) +ELSE() + OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" ON) +ENDIF() + IF(NOT WIN32) # Wayland support OPTION(FREEGLUT_WAYLAND "Use Wayland (no X11)" OFF) - # option to build either as "glut" (ON) or "freeglut" (OFF) - OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" ON) ENDIF() @@ -391,12 +396,20 @@ ENDIF() SET(LIBNAME freeglut) IF(WIN32) + IF(FREEGLUT_REPLACE_GLUT) + SET(LIBNAME glut) + ENDIF() + LIST(APPEND LIBS winmm) IF(FREEGLUT_BUILD_SHARED_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut PRIVATE FREEGLUT_EXPORTS) + SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME ${LIBNAME}) ENDIF() IF(FREEGLUT_BUILD_STATIC_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut_static PUBLIC FREEGLUT_STATIC) + IF(FREEGLUT_REPLACE_GLUT) + SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME}) + ENDIF() # need to set machine:x64 for linker, at least for VC10, and # doesn't hurt for older compilers: # http://public.kitware.com/Bug/view.php?id=11240#c22768 @@ -563,11 +576,9 @@ ENDIF() # Client applications need to define FreeGLUT GLES version to # bootstrap headers inclusion in freeglut_std.h: SET(PC_LIBNAME ${LIBNAME}) -SET(PC_FILENAME "freeglut.pc") +SET(PC_FILENAME "${LIBNAME}.pc") IF(FREEGLUT_GLES) SET(PC_CFLAGS "-DFREEGLUT_GLES") - SET(PC_LIBNAME "freeglut-gles") - SET(PC_FILENAME "freeglut-gles.pc") ENDIF() CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/freeglut.pc.in ${CMAKE_BINARY_DIR}/freeglut.pc @ONLY) INSTALL(FILES ${CMAKE_BINARY_DIR}/freeglut.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ RENAME ${PC_FILENAME} COMPONENT Devel) -- 1.7.10.4