From 86545861dc6a72447add3d2b513d66411a5bd963 Mon Sep 17 00:00:00 2001 From: beuc Date: Mon, 2 Apr 2012 22:22:33 +0000 Subject: [PATCH] Use different names for GLES1 and GLES2 libraries, to allow parallel install git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1233 7f0cb862-5218-0410-a997-914c9d46530a --- .gitattributes | 3 ++- freeglut/freeglut/CMakeLists.txt | 20 ++++++++++++++++--- freeglut/freeglut/README.android | 10 +++++----- .../freeglut/android/{ => gles1}/Android.mk | 4 ++-- freeglut/freeglut/android/gles2/Android.mk | 9 +++++++++ freeglut/freeglut/freeglut.pc.in | 2 +- 6 files changed, 36 insertions(+), 12 deletions(-) rename freeglut/freeglut/android/{ => gles1}/Android.mk (64%) create mode 100644 freeglut/freeglut/android/gles2/Android.mk diff --git a/.gitattributes b/.gitattributes index b5ef66d..fb7556a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,8 +15,9 @@ freeglut/freeglut/README.mac -text freeglut/freeglut/README.mingw_cross svn_keywords=Author+Date+Id+Revision freeglut/freeglut/README.win32 svn_keywords=Author+Date+Id+Revision freeglut/freeglut/TODO svn_keywords=Author+Date+Id+Revision -freeglut/freeglut/android/Android.mk -text freeglut/freeglut/android/README -text +freeglut/freeglut/android/gles1/Android.mk -text +freeglut/freeglut/android/gles2/Android.mk -text freeglut/freeglut/android_toolchain.cmake -text freeglut/freeglut/config.h.in svn_keywords=Author+Date+Id+Revision freeglut/freeglut/doc/download.html svn_keywords=Author+Date+Id+Revision diff --git a/freeglut/freeglut/CMakeLists.txt b/freeglut/freeglut/CMakeLists.txt index e27463d..b5e1920 100644 --- a/freeglut/freeglut/CMakeLists.txt +++ b/freeglut/freeglut/CMakeLists.txt @@ -297,8 +297,16 @@ ELSE() # - the shared library should link to the dependency libraries so that the user # won't have to link them explicitly (they shouldn't have to know that we depend # on Xrandr or Xxf86vm) - SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME glut) - SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME glut) + IF(FREEGLUT_GLES2) + SET(LIBNAME freeglut-gles2) + ELSEIF(FREEGLUT_GLES1) + SET(LIBNAME freeglut-gles1) + ELSE() + SET(LIBNAME glut) + ENDIF() + + SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME ${LIBNAME}) + SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME}) IF(ANDROID) # Not in CMake toolchain file, because the toolchain # file is called several times and generally doesn't @@ -405,12 +413,18 @@ ELSE() ENDIF() # Client applications need to define FreeGLUT GLES version to # bootstrap headers inclusion in freeglut_std.h: +SET(PC_LIBNAME "glut") +SET(PC_FILENAME "freeglut.pc") IF(FREEGLUT_GLES2) SET(PC_CFLAGS "-DFREEGLUT_GLES2") + SET(PC_LIBNAME "freeglut-gles2") + SET(PC_FILENAME "freeglut-gles2.pc") ELSEIF(FREEGLUT_GLES1) SET(PC_CFLAGS "-DFREEGLUT_GLES1") + SET(PC_LIBNAME "freeglut-gles1") + SET(PC_FILENAME "freeglut-gles1.pc") ENDIF() CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/freeglut.pc.in ${CMAKE_BINARY_DIR}/freeglut.pc @ONLY) -INSTALL(FILES ${CMAKE_BINARY_DIR}/freeglut.pc DESTINATION share/pkgconfig) +INSTALL(FILES ${CMAKE_BINARY_DIR}/freeglut.pc DESTINATION share/pkgconfig/ RENAME ${PC_FILENAME}) # TODO: change the library and .pc name when building for GLES, # e.g. -lglut-GLES2 diff --git a/freeglut/freeglut/README.android b/freeglut/freeglut/README.android index 4cded4a..c0b43b8 100644 --- a/freeglut/freeglut/README.android +++ b/freeglut/freeglut/README.android @@ -22,7 +22,7 @@ Create a module compatible with the NDK build-system cd cross-android-module/ cmake \ -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \ - -D CMAKE_INSTALL_PREFIX=/freeglut \ + -D CMAKE_INSTALL_PREFIX=/freeglut-gles2 \ -D FREEGLUT_GLES2=ON \ -D FREEGLUT_BUILD_DEMOS=NO \ .. @@ -31,17 +31,17 @@ Create a module compatible with the NDK build-system - Copy Android.mk in the new 'freeglut/' directory : - cp android/Android.mk freeglut/ + cp ../android/gles2/Android.mk freeglut-gles2/ - Reference this module in your jni/Android.mk: - LOCAL_STATIC_LIBRARIES := ... freeglut + LOCAL_STATIC_LIBRARIES := ... freeglut-gles2 ... - $(call import-module,freeglut) + $(call import-module,freeglut-gles2) - You now can point your NDK_MODULE_PATH to this module! - ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/freeglut/ + ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/cross-android-module/freeglut-gles2/ Compile FreeGLUT for a traditional cross-compiler environment diff --git a/freeglut/freeglut/android/Android.mk b/freeglut/freeglut/android/gles1/Android.mk similarity index 64% rename from freeglut/freeglut/android/Android.mk rename to freeglut/freeglut/android/gles1/Android.mk index 4f69c82..83dc219 100644 --- a/freeglut/freeglut/android/Android.mk +++ b/freeglut/freeglut/android/gles1/Android.mk @@ -2,8 +2,8 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := freeglut -LOCAL_SRC_FILES := lib/libglut.a +LOCAL_MODULE := freeglut-gles1 +LOCAL_SRC_FILES := lib/libfreeglut-gles1.a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_STATIC_LIBRARY) diff --git a/freeglut/freeglut/android/gles2/Android.mk b/freeglut/freeglut/android/gles2/Android.mk new file mode 100644 index 0000000..3f663e1 --- /dev/null +++ b/freeglut/freeglut/android/gles2/Android.mk @@ -0,0 +1,9 @@ +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := freeglut-gles2 +LOCAL_SRC_FILES := lib/libfreeglut-gles2.a +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include + +include $(PREBUILT_STATIC_LIBRARY) diff --git a/freeglut/freeglut/freeglut.pc.in b/freeglut/freeglut/freeglut.pc.in index 57b9ea0..54340b3 100644 --- a/freeglut/freeglut/freeglut.pc.in +++ b/freeglut/freeglut/freeglut.pc.in @@ -5,6 +5,6 @@ includedir=${prefix}/include Name: glut Description: A freely licensed and improved alternative to the GLUT library Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@ -Libs: -L${libdir} -lglut +Libs: -L${libdir} -l@PC_LIBNAME@ Libs.private: @PC_LIBS_PRIVATE@ Cflags: -I${includedir} @PC_CFLAGS@