Skip to content

Commit 61a4c88

Browse files
authored
Merge pull request #36 from AnyOldName3/cmake-that-is-still-supported
CMake that is still supported
2 parents ea1d627 + d5fe092 commit 61a4c88

File tree

19 files changed

+82
-230
lines changed

19 files changed

+82
-230
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ CMakeScripts
3232
Makefile
3333
cmake_install.cmake
3434
install_manifest*.txt
35+
.cmake/*
3536

3637

3738
# Compiled Object files

CMakeLists.txt

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,9 @@ SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 0)
1313
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
1414
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
1515

16-
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
16+
CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR)
1717

1818
if(COMMAND cmake_policy)
19-
# Works around warnings libraries linked against that don't
20-
# have absolute paths (e.g. -lpthreads)
21-
cmake_policy(SET CMP0003 NEW)
22-
23-
# Works around warnings about escaped quotes in ADD_DEFINITIONS
24-
# statements.
25-
cmake_policy(SET CMP0005 NEW)
26-
27-
# tell CMake to prefer CMake's own CMake modules when available
28-
# only available from cmake-2.8.4
29-
if("${CMAKE_VERSION}" VERSION_GREATER 2.8.3)
30-
cmake_policy(SET CMP0017 NEW)
31-
endif()
32-
3319
# INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.
3420
# Allows passing -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
3521
cmake_policy(SET CMP0069 NEW)
@@ -902,22 +888,8 @@ IF(DEFINED LIB_POSTFIX)
902888
# Use LIB_POSTFIX if defined
903889
SET(OSG_INSTALL_LIBDIR lib${LIB_POSTFIX})
904890
ELSE()
905-
IF(CMAKE_VERSION VERSION_LESS "2.8.5")
906-
IF(UNIX AND NOT WIN32 AND NOT APPLE)
907-
IF(CMAKE_SIZEOF_VOID_P MATCHES "8")
908-
SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
909-
MARK_AS_ADVANCED(LIB_POSTFIX)
910-
ENDIF()
911-
ENDIF()
912-
IF(NOT DEFINED LIB_POSTFIX)
913-
SET(LIB_POSTFIX "")
914-
ENDIF()
915-
SET(OSG_INSTALL_LIBDIR lib${LIB_POSTFIX})
916-
ELSE()
917-
# Use the GNU standard installation directories for CMake >= 2.8.5
918-
INCLUDE(GNUInstallDirs)
919-
SET(OSG_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
920-
ENDIF()
891+
INCLUDE(GNUInstallDirs)
892+
SET(OSG_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
921893
ENDIF()
922894
IF(NOT DEFINED LIB_POSTFIX)
923895
SET(LIB_POSTFIX "")
@@ -952,20 +924,17 @@ ELSE(WIN32)
952924
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
953925
ENDIF(WIN32)
954926

955-
# Testing CMAKE_VERSION is possible in >= 2.6.4 only
956-
BUILDER_VERSION_GREATER(2 8 0)
957-
IF(VALID_BUILDER_VERSION) # If CMake >= 2.8.1
958-
FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses)
959-
STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...)
960-
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}")
961-
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}")
962-
IF(WIN32)
963-
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}")
964-
ELSE()
965-
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}")
966-
ENDIF()
967-
ENDFOREACH()
968-
ENDIF(VALID_BUILDER_VERSION)
927+
928+
FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses)
929+
STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...)
930+
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}")
931+
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}")
932+
IF(WIN32)
933+
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}")
934+
ELSE()
935+
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}")
936+
ENDIF()
937+
ENDFOREACH()
969938

970939
#SET(INSTALL_BINDIR OpenSceneGraph/bin)
971940
#SET(INSTALL_INCDIR OpenSceneGraph/include)
@@ -1036,7 +1005,7 @@ ELSEIF(MSVC)
10361005
#C4706 assignment within conditional expression
10371006
#C4589: Constructor of abstract class 'osgGA::CameraManipulator' ignores initializer for virtual base class 'osg::Object'
10381007
SET(OSG_AGGRESSIVE_WARNING_FLAGS /W4 /wd4589 /wd4706 /wd4127 /wd4100)
1039-
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
1008+
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
10401009
SET(OSG_AGGRESSIVE_WARNING_FLAGS -Wall -Wparentheses -Wno-long-long -Wno-import -pedantic -Wreturn-type -Wmissing-braces -Wunknown-pragmas -Wunused -Wno-overloaded-virtual)
10411010

10421011
# CMake lacks an elseif, so other non-gcc, non-VS compilers need

CMakeModules/FindFBX.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# correspond to the ./configure --prefix=$FBX_DIR
1010

1111
IF(APPLE)
12-
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
12+
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
1313
# using regular Clang or AppleClang
1414
SET(FBX_LIBDIR "clang")
1515
else()

CMakeModules/OsgCPack.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ SET(CPACK_SOURCE_GENERATOR "TGZ")
6060
# for ms visual studio we use it's internally defined variable to get the configuration (debug,release, ...)
6161
IF(MSVC_IDE)
6262
SET(OSG_CPACK_CONFIGURATION "$(OutDir)")
63-
SET(PACKAGE_TARGET_PREFIX "Package ")
63+
SET(PACKAGE_TARGET_PREFIX "Package_")
6464
ELSE()
6565
# on un*x an empty CMAKE_BUILD_TYPE means release
6666
IF(CMAKE_BUILD_TYPE)

CMakeModules/OsgMacroUtils.cmake

Lines changed: 37 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,6 @@
99
# the content of this library for linking when in debugging
1010
#######################################################################################################
1111

12-
# VALID_BUILDER_VERSION: used for replacing CMAKE_VERSION (available in v2.6.3 RC9) and VERSION_GREATER/VERSION_LESS (available in 2.6.2 RC4).
13-
# This can be replaced by "IF(${CMAKE_VERSION} VERSION_LESS "x.y.z")" from 2.6.4.
14-
SET(VALID_BUILDER_VERSION OFF)
15-
MACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER)
16-
SET(VALID_BUILDER_VERSION OFF)
17-
IF(CMAKE_MAJOR_VERSION GREATER ${MAJOR_VER})
18-
SET(VALID_BUILDER_VERSION ON)
19-
ELSEIF(CMAKE_MAJOR_VERSION EQUAL ${MAJOR_VER})
20-
IF(CMAKE_MINOR_VERSION GREATER ${MINOR_VER})
21-
SET(VALID_BUILDER_VERSION ON)
22-
ELSEIF(CMAKE_MINOR_VERSION EQUAL ${MINOR_VER})
23-
IF(CMAKE_PATCH_VERSION GREATER ${PATCH_VER})
24-
SET(VALID_BUILDER_VERSION ON)
25-
ENDIF(CMAKE_PATCH_VERSION GREATER ${PATCH_VER})
26-
ENDIF()
27-
ENDIF()
28-
ENDMACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER)
29-
30-
31-
# CMAKE_VERSION_TEST: Define whether "IF(${CMAKE_VERSION} VERSION_LESS "x.y.z")" can be used or not.
32-
BUILDER_VERSION_GREATER(2 8 0)
33-
SET(CMAKE_VERSION_TEST ${VALID_BUILDER_VERSION}) # >= 2.8.0
34-
35-
SET(VALID_BUILDER_VERSION OFF)
36-
37-
3812
MACRO(LINK_WITH_VARIABLES TRGTNAME)
3913
FOREACH(varname ${ARGN})
4014
IF(${varname}_DEBUG)
@@ -50,22 +24,7 @@ MACRO(LINK_WITH_VARIABLES TRGTNAME)
5024
ENDMACRO(LINK_WITH_VARIABLES TRGTNAME)
5125

5226
MACRO(LINK_INTERNAL TRGTNAME)
53-
IF(NOT CMAKE24)
54-
TARGET_LINK_LIBRARIES(${TRGTNAME} ${ARGN})
55-
ELSE(NOT CMAKE24)
56-
FOREACH(LINKLIB ${ARGN})
57-
IF(MSVC AND OSG_MSVC_VERSIONED_DLL)
58-
#when using versioned names, the .dll name differ from .lib name, there is a problem with that:
59-
#CMake 2.4.7, at least seem to use PREFIX instead of IMPORT_PREFIX for computing linkage info to use into projects,
60-
# so we full path name to specify linkage, this prevent automatic inferencing of dependencies, so we add explicit depemdencies
61-
#to library targets used
62-
TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${OUTPUT_LIBDIR}/${LINKLIB}${CMAKE_RELEASE_POSTFIX}.lib" debug "${OUTPUT_LIBDIR}/${LINKLIB}${CMAKE_DEBUG_POSTFIX}.lib")
63-
ADD_DEPENDENCIES(${TRGTNAME} ${LINKLIB})
64-
ELSE(MSVC AND OSG_MSVC_VERSIONED_DLL)
65-
TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${LINKLIB}${CMAKE_RELEASE_POSTFIX}" debug "${LINKLIB}${CMAKE_DEBUG_POSTFIX}")
66-
ENDIF(MSVC AND OSG_MSVC_VERSIONED_DLL)
67-
ENDFOREACH(LINKLIB)
68-
ENDIF(NOT CMAKE24)
27+
TARGET_LINK_LIBRARIES(${TRGTNAME} ${ARGN})
6928
ENDMACRO(LINK_INTERNAL TRGTNAME)
7029

7130
MACRO(LINK_EXTERNAL TRGTNAME)
@@ -161,39 +120,29 @@ ENDMACRO(SETUP_LINK_LIBRARIES)
161120

162121
# Sets the output directory property for CMake >= 2.6.0, giving an output path RELATIVE to default one
163122
MACRO(SET_OUTPUT_DIR_PROPERTY_260 TARGET_TARGETNAME RELATIVE_OUTDIR)
164-
BUILDER_VERSION_GREATER(2 8 0)
165-
IF(NOT VALID_BUILDER_VERSION)
166-
# If CMake <= 2.8.0 (Testing CMAKE_VERSION is possible in >= 2.6.4)
167-
IF(MSVC_IDE)
168-
# Using the "prefix" hack
169-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../${RELATIVE_OUTDIR}/")
170-
ELSE(MSVC_IDE)
171-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "${RELATIVE_OUTDIR}/")
172-
ENDIF(MSVC_IDE)
173-
ELSE(NOT VALID_BUILDER_VERSION)
174-
# Using the output directory properties
175-
176-
# Global properties (All generators but VS & Xcode)
177-
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_ARCHIVE_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
178-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${TMPVAR}")
179-
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_RUNTIME_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
180-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TMPVAR}")
181-
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_LIBRARY_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
182-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TMPVAR}")
183-
184-
# Per-configuration property (VS, Xcode)
185-
FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses)
186-
STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...)
187-
188-
# We use "FILE(TO_CMAKE_PATH", to create nice looking paths
189-
FILE(TO_CMAKE_PATH "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
190-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
191-
FILE(TO_CMAKE_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
192-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
193-
FILE(TO_CMAKE_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
194-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
195-
ENDFOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
196-
ENDIF(NOT VALID_BUILDER_VERSION)
123+
124+
# Using the output directory properties
125+
126+
# Global properties (All generators but VS & Xcode)
127+
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_ARCHIVE_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
128+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${TMPVAR}")
129+
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_RUNTIME_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
130+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TMPVAR}")
131+
FILE(TO_CMAKE_PATH TMPVAR "CMAKE_LIBRARY_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}")
132+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TMPVAR}")
133+
134+
# Per-configuration property (VS, Xcode)
135+
FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses)
136+
STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...)
137+
138+
# We use "FILE(TO_CMAKE_PATH", to create nice looking paths
139+
FILE(TO_CMAKE_PATH "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
140+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
141+
FILE(TO_CMAKE_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
142+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
143+
FILE(TO_CMAKE_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR)
144+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}")
145+
ENDFOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
197146
ENDMACRO(SET_OUTPUT_DIR_PROPERTY_260 TARGET_TARGETNAME RELATIVE_OUTDIR)
198147

199148

@@ -302,34 +251,7 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME)
302251
ENDIF(DYNAMIC_OPENSCENEGRAPH)
303252

304253
IF(MSVC)
305-
IF(NOT CMAKE24)
306-
SET_OUTPUT_DIR_PROPERTY_260(${TARGET_TARGETNAME} "${OSG_PLUGINS}") # Sets the ouput to be /osgPlugin-X.X.X ; also ensures the /Debug /Release are removed
307-
ELSE(NOT CMAKE24)
308-
309-
IF(OSG_MSVC_VERSIONED_DLL)
310-
311-
#this is a hack... the build place is set to lib/<debug or release> by LIBARARY_OUTPUT_PATH equal to OUTPUT_LIBDIR
312-
#the .lib will be crated in ../ so going straight in lib by the IMPORT_PREFIX property
313-
#because we want dll placed in OUTPUT_BINDIR ie the bin folder sibling of lib, we can use ../../bin to go there,
314-
#it is hardcoded, we should compute OUTPUT_BINDIR position relative to OUTPUT_LIBDIR ... to be implemented
315-
#changing bin to something else breaks this hack
316-
#the dll are placed in bin/${OSG_PLUGINS}
317-
318-
IF(NOT MSVC_IDE)
319-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../bin/${OSG_PLUGINS}/")
320-
ELSE(NOT MSVC_IDE)
321-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../../bin/${OSG_PLUGINS}/" IMPORT_PREFIX "../")
322-
ENDIF(NOT MSVC_IDE)
323-
324-
ELSE(OSG_MSVC_VERSIONED_DLL)
325-
326-
#in standard mode (unversioned) the .lib and .dll are placed in lib/<debug or release>/${OSG_PLUGINS}.
327-
#here the PREFIX property has been used, the same result would be accomplidhe by prepending ${OSG_PLUGINS}/ to OUTPUT_NAME target property
328-
329-
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "${OSG_PLUGINS}/")
330-
ENDIF(OSG_MSVC_VERSIONED_DLL)
331-
332-
ENDIF(NOT CMAKE24)
254+
SET_OUTPUT_DIR_PROPERTY_260(${TARGET_TARGETNAME} "${OSG_PLUGINS}") # Sets the ouput to be /osgPlugin-X.X.X ; also ensures the /Debug /Release are removed
333255
ENDIF(MSVC)
334256

335257
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PROJECT_LABEL "${TARGET_LABEL}")
@@ -433,6 +355,14 @@ MACRO(SETUP_EXE IS_COMMANDLINE_APP)
433355
ENDIF()
434356
ENDIF()
435357

358+
IF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND DYNAMIC_OPENSCENEGRAPH)
359+
# templated types used in OSG plugins and applications need to get the same type ID
360+
# based on investigation for https://gitlab.com/OpenMW/openmw/-/issues/8039 by the OpenMW team, this is believed to only be necessary for Clang on Linux
361+
# i.e. not for GCC anywhere, MSVC on Windows or for AppleClang on MacOS
362+
# it's possible that this is really required by the C++ spec for all platforms and we're just getting away with it everywhere else
363+
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES ENABLE_EXPORTS ON)
364+
ENDIF()
365+
436366
SETUP_LINK_LIBRARIES()
437367

438368
ENDMACRO(SETUP_EXE)
@@ -457,7 +387,7 @@ MACRO(SETUP_APPLICATION APPLICATION_NAME)
457387
ELSE(APPLE)
458388
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin COMPONENT openscenegraph )
459389
IF(MSVC)
460-
INSTALL(FILES $<TARGET_PDB_FILE:${TARGET_NAME}> DESTINATION bin COMPONENT openscenegraph)
390+
INSTALL(FILES $<TARGET_PDB_FILE:${TARGET_TARGETNAME}> DESTINATION bin COMPONENT openscenegraph)
461391
ENDIF(MSVC)
462392
ENDIF(APPLE)
463393

@@ -489,7 +419,7 @@ MACRO(SETUP_EXAMPLE EXAMPLE_NAME)
489419
ELSE(APPLE)
490420
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples )
491421
IF(MSVC)
492-
INSTALL(FILES $<TARGET_PDB_FILE:${TARGET_NAME}> DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples)
422+
INSTALL(FILES $<TARGET_PDB_FILE:${TARGET_TARGETNAME}> DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples)
493423
ENDIF(MSVC)
494424
ENDIF(APPLE)
495425

@@ -527,38 +457,9 @@ MACRO(HANDLE_MSVC_DLL)
527457

528458
SET_OUTPUT_DIR_PROPERTY_260(${LIB_NAME} "") # Ensure the /Debug /Release are removed
529459
IF(NOT MSVC_IDE)
530-
IF (NOT CMAKE24)
531-
BUILDER_VERSION_GREATER(2 8 0)
532-
IF(NOT VALID_BUILDER_VERSION)
533-
# If CMake < 2.8.1
534-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
535-
ELSE(NOT VALID_BUILDER_VERSION)
536-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-")
537-
ENDIF(NOT VALID_BUILDER_VERSION)
538-
ELSE (NOT CMAKE24)
539-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
540-
SET(NEW_LIB_NAME "${OUTPUT_BINDIR}/${LIB_PREFIX}${LIB_SOVERSION}-${LIB_NAME}")
541-
ADD_CUSTOM_COMMAND(
542-
TARGET ${LIB_NAME}
543-
POST_BUILD
544-
COMMAND ${CMAKE_COMMAND} -E copy "${NEW_LIB_NAME}.lib" "${OUTPUT_LIBDIR}/${LIB_NAME}.lib"
545-
COMMAND ${CMAKE_COMMAND} -E copy "${NEW_LIB_NAME}.exp" "${OUTPUT_LIBDIR}/${LIB_NAME}.exp"
546-
COMMAND ${CMAKE_COMMAND} -E remove "${NEW_LIB_NAME}.lib"
547-
COMMAND ${CMAKE_COMMAND} -E remove "${NEW_LIB_NAME}.exp"
548-
)
549-
ENDIF (NOT CMAKE24)
460+
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-")
550461
ELSE(NOT MSVC_IDE)
551-
IF (NOT CMAKE24)
552-
BUILDER_VERSION_GREATER(2 8 0)
553-
IF(NOT VALID_BUILDER_VERSION)
554-
# If CMake < 2.8.1
555-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
556-
ELSE(NOT VALID_BUILDER_VERSION)
557-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-")
558-
ENDIF(NOT VALID_BUILDER_VERSION)
559-
ELSE (NOT CMAKE24)
560-
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
561-
ENDIF (NOT CMAKE24)
462+
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-")
562463
ENDIF(NOT MSVC_IDE)
563464

564465
# SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/osg${OPENSCENEGRAPH_SOVERSION}-")

CMakeModules/UtilityMacros.cmake

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -101,23 +101,6 @@ MACRO(TARGET_LOCATIONS_SET_FILE FILE)
101101
FILE(WRITE ${ACCUM_FILE_TARGETS} "")
102102
ENDMACRO()
103103

104-
#---------------------------------------------------
105-
# Macro: TARGET_LOCATIONS_ACCUM TARGET_NAME
106-
#
107-
#---------------------------------------------------
108-
109-
MACRO(TARGET_LOCATIONS_ACCUM TARGET_NAME)
110-
IF(ACCUM_FILE_TARGETS)
111-
IF(EXISTS ${ACCUM_FILE_TARGETS})
112-
GET_TARGET_PROPERTY(_FILE_LOCATION ${TARGET_NAME} LOCATION)
113-
FILE(APPEND ${ACCUM_FILE_TARGETS} "${_FILE_LOCATION};")
114-
#SET(_TARGETS_LIST ${_TARGETS_LIST} "${_FILE_LOCATION}" CACHE INTERNAL "lista dll")
115-
#MESSAGE("adding target -->${TARGET_NAME}<-- file -->${_FILE_LOCATION}<-- to list -->${_TARGETS_LIST}<--")
116-
#SET(ACCUM_FILE_TARGETS ${ACCUM_FILE_TARGETS} ${_FILE_LOCATION})
117-
ENDIF()
118-
ENDIF()
119-
ENDMACRO()
120-
121104
#---------------------------------------------------
122105
# Macro: TARGET_LOCATIONS_GET_LIST _VAR
123106
#

0 commit comments

Comments
 (0)