Skip to content

Commit 192e943

Browse files
update the lib directory name setting.
1 parent f8e7e8d commit 192e943

File tree

4 files changed

+68
-65
lines changed

4 files changed

+68
-65
lines changed

CMakeLists.txt

Lines changed: 60 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@ set( OSGBCOLLISION_SUB_VERSION 2 )
1010

1111
set( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}" )
1212

13-
IF(UNIX AND NOT WIN32 AND NOT APPLE)
14-
IF(CMAKE_SIZEOF_VOID_P MATCHES "8")
15-
SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
16-
MARK_AS_ADVANCED(LIB_POSTFIX)
17-
ENDIF()
18-
ENDIF()
19-
IF(NOT DEFINED LIB_POSTFIX)
20-
SET(LIB_POSTFIX "")
21-
ENDIF()
22-
2313
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin )
2414
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib )
2515
if( WIN32 )
@@ -28,6 +18,9 @@ else()
2818
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} )
2919
endif()
3020

21+
#
22+
# Setup the parrallel build support for windows
23+
#
3124
IF( WIN32 AND MSVC )
3225
OPTION( OSGBULLET_WIN32_USE_MP "Build with multiple processes (/MP option; VS 2005 and above)." ON )
3326
MARK_AS_ADVANCED( OSGBULLET_WIN32_USE_MP )
@@ -36,6 +29,17 @@ IF( WIN32 AND MSVC )
3629
ENDIF( OSGBULLET_WIN32_USE_MP )
3730
ENDIF( WIN32 AND MSVC )
3831

32+
#
33+
# Setup the the lib directory on a per platform basis
34+
#
35+
if(CMAKE_COMPILER_IS_GNUCXX)
36+
include(GNUInstallDirs)
37+
endif(CMAKE_COMPILER_IS_GNUCXX)
38+
39+
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
40+
set(CMAKE_INSTALL_LIBDIR lib)
41+
endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
42+
3943

4044
IF(NOT ANDROID)
4145
IF(APPLE)
@@ -71,6 +75,35 @@ IF(APPLE)
7175
ENDIF()
7276
ENDIF()
7377

78+
IF(APPLE)
79+
80+
#Here we check if the user specified IPhone SDK
81+
IF(OSG_BUILD_PLATFORM_IPHONE OR OSG_BUILD_PLATFORM_IPHONE_SIMULATOR)
82+
83+
#set iphone arch and flags taken from http://sites.google.com/site/michaelsafyan/coding/resources/how-to-guides/cross-compile-for-the-iphone/how-to-cross-compile-for-the-iphone-using-cmake
84+
IF(OSG_BUILD_PLATFORM_IPHONE)
85+
SET(CMAKE_OSX_ARCHITECTURES "armv7" CACHE STRING "Build architectures for iOS" FORCE)
86+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=5.1 -mno-thumb -arch armv7 -pipe -no-cpp-precomp" CACHE STRING "Flags used by the compiler during all build types." FORCE)
87+
ELSE()
88+
#simulator uses i386 architectures
89+
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for iOS Simulator" FORCE)
90+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-thumb -arch i386 -pipe -no-cpp-precomp" CACHE STRING "Flags used by the compiler during all build types." FORCE)
91+
ENDIF()
92+
93+
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two seperate projects
94+
SET(CMAKE_OSX_SYSROOT "${IPHONE_SDKROOT}" CACHE STRING "System root for iOS" FORCE)
95+
96+
#hack, force link to opengles
97+
set(CMAKE_EXE_LINKER_FLAGS "-framework Foundation -framework OpenGLES")
98+
99+
#use the IPhone windowing system
100+
SET(OSG_WINDOWING_SYSTEM "IOS" CACHE STRING "Forced IPhone windowing system on iOS" FORCE)
101+
SET(OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX "imageio" CACHE STRING "Forced imageio default image plugin for iOS" FORCE)
102+
103+
#I think this or similar will be required for IPhone apps
104+
OPTION(OSG_BUILD_APPLICATION_BUNDLES "Enable the building of applications and examples as OSX Bundles" ON)
105+
ENDIF()
106+
ENDIF()
74107

75108
INCLUDE( CMakeMacros )
76109

@@ -151,36 +184,6 @@ ADD_SUBDIRECTORY( src/osgbDynamics )
151184
ADD_SUBDIRECTORY( src/osgbInteraction )
152185
ADD_SUBDIRECTORY( src/plugins )
153186

154-
IF(APPLE)
155-
156-
#Here we check if the user specified IPhone SDK
157-
IF(OSG_BUILD_PLATFORM_IPHONE OR OSG_BUILD_PLATFORM_IPHONE_SIMULATOR)
158-
159-
#set iphone arch and flags taken from http://sites.google.com/site/michaelsafyan/coding/resources/how-to-guides/cross-compile-for-the-iphone/how-to-cross-compile-for-the-iphone-using-cmake
160-
IF(OSG_BUILD_PLATFORM_IPHONE)
161-
SET(CMAKE_OSX_ARCHITECTURES "armv7" CACHE STRING "Build architectures for iOS" FORCE)
162-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=5.1 -mno-thumb -arch armv7 -pipe -no-cpp-precomp" CACHE STRING "Flags used by the compiler during all build types." FORCE)
163-
ELSE()
164-
#simulator uses i386 architectures
165-
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for iOS Simulator" FORCE)
166-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-thumb -arch i386 -pipe -no-cpp-precomp" CACHE STRING "Flags used by the compiler during all build types." FORCE)
167-
ENDIF()
168-
169-
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two seperate projects
170-
SET(CMAKE_OSX_SYSROOT "${IPHONE_SDKROOT}" CACHE STRING "System root for iOS" FORCE)
171-
172-
#hack, force link to opengles
173-
set(CMAKE_EXE_LINKER_FLAGS "-framework Foundation -framework OpenGLES")
174-
175-
#use the IPhone windowing system
176-
SET(OSG_WINDOWING_SYSTEM "IOS" CACHE STRING "Forced IPhone windowing system on iOS" FORCE)
177-
SET(OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX "imageio" CACHE STRING "Forced imageio default image plugin for iOS" FORCE)
178-
179-
#I think this or similar will be required for IPhone apps
180-
OPTION(OSG_BUILD_APPLICATION_BUNDLES "Enable the building of applications and examples as OSX Bundles" ON)
181-
ENDIF()
182-
ENDIF()
183-
184187
#
185188
# Doxygen
186189
find_package( Doxygen )
@@ -203,7 +206,7 @@ endif()
203206
if(MSVC)
204207
install(
205208
DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CMAKE_INSTALL_CONFIG_NAME}/
206-
DESTINATION lib${LIB_POSTFIX}
209+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
207210
USE_SOURCE_PERMISSIONS
208211
COMPONENT libosgbbullet-dev
209212
FILES_MATCHING PATTERN "*.pdb"
@@ -222,40 +225,40 @@ install( FILES "extra/FindosgBullet.cmake"
222225

223226
# Add all targets to the build-tree export set
224227
export(TARGETS osgbInteraction osgbCollision osgbDynamics
225-
FILE "${PROJECT_BINARY_DIR}/lib/osgBulletLibraryDepends.cmake")
228+
FILE "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletLibraryDepends.cmake")
226229

227230
# Export the package for use from the build-tree
228231
# (this registers the build-tree with a global CMake-registry)
229232
export(PACKAGE osgBullet)
230233

231234
# Create a osgBulletBuildTreeSettings.cmake file for the use from the build tree
232235
configure_file(osgBulletBuildTreeSettings.cmake.in
233-
"${PROJECT_BINARY_DIR}/lib/osgBulletBuildTreeSettings.cmake" @ONLY)
236+
"${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletBuildTreeSettings.cmake" @ONLY)
234237

235238
#configure_file(osgBulletConfig.cmake.in
236-
# "${PROJECT_BINARY_DIR}/lib/osgBulletConfig.cmake" @ONLY)
239+
# "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletConfig.cmake" @ONLY)
237240
configure_file(osgBulletConfigVersion.cmake.in
238-
"${PROJECT_BINARY_DIR}/lib/osgBulletConfigVersion.cmake" @ONLY)
241+
"${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletConfigVersion.cmake" @ONLY)
239242
configure_file(UseosgBullet.cmake.in
240-
"${PROJECT_BINARY_DIR}/lib/UseosgBullet.cmake" @ONLY)
243+
"${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/UseosgBullet.cmake" @ONLY)
241244

242245
# Install the export set for use with the install-tree
243-
install(EXPORT osgbullet-targets DESTINATION lib${LIB_POSTFIX})
246+
install(EXPORT osgbullet-targets DESTINATION ${CMAKE_INSTALL_LIBDIR})
244247

245248
include( CMakePackageConfigHelpers )
246249
# Create the osgBulletConfig.cmake and osgBulletConfigVersion files
247-
#file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/lib"
250+
#file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}"
248251
# "${CMAKE_INSTALL_PREFIX}/include")
249252

250253
configure_package_config_file(
251-
osgBulletConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/lib/osgBulletConfig.cmake
252-
INSTALL_DESTINATION lib${LIB_POSTFIX}
254+
osgBulletConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletConfig.cmake
255+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}
253256
PATH_VARS OSGBULLET_USE_DOUBLE_PRECISION )
254257

255-
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/osgBulletConfig.cmake
256-
${CMAKE_CURRENT_BINARY_DIR}/lib/osgBulletConfigVersion.cmake
257-
${CMAKE_CURRENT_BINARY_DIR}/lib/UseosgBullet.cmake
258-
DESTINATION lib${LIB_POSTFIX} )
258+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletConfig.cmake
259+
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/osgBulletConfigVersion.cmake
260+
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/UseosgBullet.cmake
261+
DESTINATION ${CMAKE_INSTALL_LIBDIR} )
259262

260263
#
261264
# Setup the fpc auto detection files
@@ -272,8 +275,8 @@ else(WIN32)
272275
endif(WIN32)
273276

274277
configure_file(extra/osgbullet.fpc.in
275-
"${PROJECT_BINARY_DIR}/lib/flagpoll/osgbullet.fpc" @ONLY)
278+
"${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/flagpoll/osgbullet.fpc" @ONLY)
276279

277-
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/flagpoll/osgbullet.fpc
278-
DESTINATION lib${LIB_POSTFIX}/flagpoll )
280+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/flagpoll/osgbullet.fpc
281+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/flagpoll )
279282

CMakeModules/ModuleInstall.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ IF(WIN32)
88
SET(INSTALL_LIBDIR bin)
99
SET(INSTALL_ARCHIVEDIR lib)
1010
ELSE()
11-
SET(INSTALL_LIBDIR lib${LIB_POSTFIX})
12-
SET(INSTALL_ARCHIVEDIR lib${LIB_POSTFIX})
11+
SET(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
12+
SET(INSTALL_ARCHIVEDIR ${CMAKE_INSTALL_LIBDIR})
1313
ENDIF()
1414

1515
SET(HEADERS_GROUP "Header Files")

extra/osgbullet.fpc.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
prefix=${fp_file_cwd}/../..
22
exec_prefix=${prefix}
3-
libdir=${exec_prefix}/lib
3+
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
44
includedir=${prefix}/include
55

66
Name: osgBullet

osgBulletConfig.cmake.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ set(OSGBULLET_LIBRARIES "osgbCollision;osgbDynamics;osgbInteraction" )
1212
# Compute paths
1313
if(EXISTS "${PACKAGE_PREFIX_DIR}/CMakeCache.txt")
1414
# In build tree
15-
include("${PACKAGE_PREFIX_DIR}/lib/osgBulletBuildTreeSettings.cmake")
15+
include("${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@/osgBulletBuildTreeSettings.cmake")
1616
# Our library dependencies (contains definitions for IMPORTED targets)
17-
include("${PACKAGE_PREFIX_DIR}/lib/osgBulletLibraryDepends.cmake")
17+
include("${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@/osgBulletLibraryDepends.cmake")
1818
else()
1919
set_and_check(OSGBULLET_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include")
2020
# The osgBullet targets file.
21-
if(EXISTS "${PACKAGE_PREFIX_DIR}/lib/osgbullet-targets.cmake")
22-
include("${PACKAGE_PREFIX_DIR}/lib/osgbullet-targets.cmake")
21+
if(EXISTS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@/osgbullet-targets.cmake")
22+
include("${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@/osgbullet-targets.cmake")
2323
endif()
2424
endif()
2525

2626
# The location of the UseosgBullet.cmake file.
27-
set(osgBullet_USE_FILE "${PACKAGE_PREFIX_DIR}/lib/UseosgBullet.cmake")
27+
set(osgBullet_USE_FILE "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@/UseosgBullet.cmake")
2828

2929
set(OSGBULLET_USE_DOUBLE_PRECISION @OSGBULLET_USE_DOUBLE_PRECISION@)
3030
set(OSGBULLET_SHARED @BUILD_SHARED_LIBS@)

0 commit comments

Comments
 (0)