forked from roboticslibrary/rl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
136 lines (119 loc) · 3.33 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
find_package(OpenGL REQUIRED)
find_package(SoQt)
if(RL_USE_QT5 AND SoQt5_FOUND)
find_package(Qt5 COMPONENTS Core Gui OpenGL Widgets QUIET)
endif()
if(Qt5_FOUND)
set(QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES} ${Qt5Widgets_LIBRARIES})
set(QT_FOUND Qt5_FOUND)
else()
set(QT_USE_IMPORTED_TARGETS ON)
find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL)
set(QT_USE_QTMAIN ON)
include(${QT_USE_FILE})
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Bullet)
find_package(ccd)
find_package(FCL)
find_package(ODE)
find_package(PQP)
find_package(SOLID3)
if(QT_FOUND AND SoQt_FOUND)
if(BULLET_FOUND OR (CCD_FOUND AND FCL_FOUND) OR ODE_FOUND OR PQP_FOUND OR SOLID3_FOUND)
set(
HDRS
BodyDelegate.h
BodyModel.h
MainWindow.h
SoGradientBackground.h
)
set(
SRCS
BodyDelegate.cpp
BodyModel.cpp
MainWindow.cpp
rlCollisionDemo.cpp
SoGradientBackground.cpp
${rl_SOURCE_DIR}/robotics-library.rc
)
add_executable(
rlCollisionDemo
WIN32
${HDRS}
${SRCS}
)
target_compile_definitions(
rlCollisionDemo
PUBLIC
${SoQt_DEFINITIONS}
)
target_include_directories(
rlCollisionDemo
PUBLIC
${OPENGL_INCLUDE_DIR}
${SoQt_INCLUDE_DIRS}
)
target_link_libraries(
rlCollisionDemo
sg
${OPENGL_LIBRARIES}
${QT_LIBRARIES}
${SoQt_LIBRARIES}
)
set_target_properties(
rlCollisionDemo
PROPERTIES
VERSION ${VERSION}
)
if(WIN32)
set_target_properties(
rlCollisionDemo
PROPERTIES
DEBUG_POSTFIX d
)
endif()
install(
TARGETS rlCollisionDemo
COMPONENT demos
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(MSVC AND BUILD_SHARED_LIBS AND NOT CMAKE_VERSION VERSION_LESS 3.1)
install(FILES $<TARGET_PDB_FILE:rlCollisionDemo> DESTINATION ${CMAKE_INSTALL_BINDIR} CONFIGURATIONS Debug RelWithDebInfo COMPONENT demos)
endif()
if(UNIX)
configure_file(rlCollisionDemo.desktop.in rlCollisionDemo.desktop @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rlCollisionDemo.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications COMPONENT demos)
endif()
set(
CPACK_NSIS_CREATE_ICONS_EXTRA
${CPACK_NSIS_CREATE_ICONS_EXTRA}
"CreateShortCut \\\\
\\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\rlCollisionDemo.lnk\\\" \\\\
\\\"$INSTDIR\\\\${CMAKE_INSTALL_BINDIR}\\\\rlCollisionDemo.exe\\\" \\\\
\\\"\\\\
\\\$\\\\\\\"$INSTDIR\\\\${CMAKE_INSTALL_DATADIR}\\\\rl-${VERSION}\\\\examples\\\\rlsg\\\\scene.xml\\\$\\\\\\\"\\\\
\\\" \\\\
\\\"\\\" \\\"\\\" \\\"\\\" \\\"\\\" \\\\
\\\"Collision detection and distance computation demo with basic scene\\\""
PARENT_SCOPE
)
set(CPACK_NSIS_DELETE_ICONS_EXTRA ${CPACK_NSIS_DELETE_ICONS_EXTRA} "Delete \\\"$SMPROGRAMS\\\\$START_MENU\\\\rlCollisionDemo.lnk\\\"" PARENT_SCOPE)
set(
WIX_SHORTCUTS
${WIX_SHORTCUTS}
"<Shortcut
Arguments=\""[INSTALL_ROOT]${CMAKE_INSTALL_DATADIR}\\rl-${VERSION}\\examples\\rlsg\\scene.xml"\"
Description=\"Collision detection and distance computation demo with basic scene\"
Id=\"CM_SP_bin.rlCollisionDemo.exe\"
Name=\"rlCollisionDemo\"
Target=\"[#CM_FP_bin.rlCollisionDemo.exe]\"
WorkingDirectory=\"CM_DP_bin\"
/>"
PARENT_SCOPE
)
endif()
endif()