~hrg/hrg-packaging/openhrp3

« back to all changes in this revision

Viewing changes to CMakeLists.txt

  • Committer: nakaoka
  • Date: 2008-07-06 15:26:51 UTC
  • Revision ID: git-v1:fbb3ce756bbcedb021fed5d474b58ef092ea8b42
コンパイルに cmake を使用するようにし、MakefileをCMakeLists.txt で置き換えた。

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
# @author Shin'ichiro Nakaoka
 
3
 
 
4
cmake_minimum_required(VERSION 2.4)
 
5
 
 
6
project(OpenHRP)
 
7
 
 
8
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
 
9
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules/)
 
10
 
 
11
include(FindPkgConfig)
 
12
include(CheckIncludeFiles)
 
13
 
 
14
# commands
 
15
set(RMDIR rm -fr)
 
16
 
 
17
# check "dlfcn.h" for using dlopen() and dlclose()
 
18
if(UNIX)
 
19
  check_include_files(dlfcn.h HAVE_DLFCN_H)
 
20
  if(NOT HAVE_DLFCN_H)
 
21
    message(FATAL_ERROR "Could not find dlfcn.h")
 
22
  endif()
 
23
endif()
 
24
 
 
25
 
 
26
# check boost
 
27
if(NOT Boost_INCLUDE_DIRS AND NOT Boost_LIBRARY_DIRS)
 
28
  find_package(Boost REQUIRED)
 
29
  if(Boost_FOUND)
 
30
    message(STATUS "Found Boost C++ library in ${Boost_INCLUDE_DIRS}")
 
31
  endif()
 
32
endif()  
 
33
 
 
34
include_directories(${Boost_INCLUDE_DIRS})
 
35
link_directories(${Boost_LIBRARY_DIRS})
 
36
 
 
37
set(Boost_INCLUDE_DIRS CACHE PATH "Directories for searching boost header files")
 
38
set(Boost_LIBRARY_DIRS CACHE PATH "Directories for searching boost library files")
 
39
 
 
40
 
 
41
# check blas and lapack
 
42
find_package(Lapack REQUIRED)
 
43
include_directories(${LAPACK_INCLUDE_DIRS})
 
44
link_directories(${LAPACK_LIBRARY_DIRS})
 
45
 
 
46
 
 
47
# tvmet
 
48
find_package(Tvmet REQUIRED)
 
49
include_directories(${TVMET_INCLUDE_DIR})
 
50
 
 
51
 
 
52
# jpeg
 
53
find_package(JPEG REQUIRED)
 
54
include_directories(${JPEG_INCLUDE_DIR})
 
55
 
 
56
# png
 
57
find_package(PNG REQUIRED)
 
58
include_directories(${PNG_INCLUDE_DIR})
 
59
 
 
60
 
 
61
# omniORB
 
62
if(NOT OMNIORB_DIR)
 
63
  pkg_check_modules(OMNIORB REQUIRED omniORB4)
 
64
  if(OMNIORB_FOUND)
 
65
    set(OMNIORB_DIR ${OMNIORB_PREFIX})
 
66
    message(STATUS "Found omniORB ${OMNIORB_VERSION} in ${OMNIORB_PREFIX}")
 
67
  endif()
 
68
else()
 
69
  set(OMNIORB_INCLUDE_DIRS ${OMNIORB_DIR}/include)
 
70
  set(OMNIORB_LIBRARY_DIRS ${OMNIORB_DIR}/lib)
 
71
endif()
 
72
 
 
73
include_directories(${OMNIORB_INCLUDE_DIRS})
 
74
link_directories(${OMNIORB_LIBRARY_DIRS})
 
75
add_definitions(${OMNIORB_CFLAGS})
 
76
 
 
77
set(OMNIORB_DIR ${OMNIORB_DIR} CACHE PATH "The top directory of omniORB")
 
78
set(OMNIORB_CFLAGS ${OMNIORB_CFLAGS} CACHE STRING "Compile flags for omniORB")
 
79
 
 
80
 
 
81
# OpenRTM-aist
 
82
find_package(OpenRTM REQUIRED)
 
83
 
 
84
# Version should be checked here if possible
 
85
include_directories(${OPENRTM_INCLUDE_DIRS})
 
86
add_definitions(${OPENRTM_DEFINITIONS})
 
87
link_directories(${OPENRTM_LIBRARY_DIRS})
 
88
 
 
89
 
 
90
# check Java
 
91
if(NOT JDK_DIR)
 
92
  find_package(Java)
 
93
  if(JAVA_COMPILE)
 
94
    get_filename_component(JDK_BIN_DIR ${JAVA_COMPILE} PATH)
 
95
    string(REGEX REPLACE "/bin/?" "" JDK_DIR ${JDK_BIN_DIR})
 
96
    message(STATUS "Found Java tools in ${JDK_BIN_DIR}")
 
97
  endif()
 
98
endif()
 
99
 
 
100
set(JDK_DIR ${JDK_DIR} CACHE PATH "JDK path")
 
101
string(REGEX REPLACE "/$" "" JDK_DIR ${JDK_DIR})
 
102
 
 
103
if(NOT JDK_DIR)
 
104
  set(JAVAC javac)
 
105
  set(IDLJ idlj)
 
106
  set(JAVA java)
 
107
  set(JAR jar)
 
108
  set(NATIVE2ASCII native2ascii)
 
109
else()
 
110
  set(JAVAC ${JDK_DIR}/bin/javac)
 
111
  set(IDLJ ${JDK_DIR}/bin/idlj)
 
112
  set(JAVA ${JDK_DIR}/bin/java)
 
113
  set(JAR ${JDK_DIR}/bin/jar)
 
114
  set(NATIVE2ASCII ${JDK_DIR}/bin/native2ascii)
 
115
endif()
 
116
 
 
117
message(STATUS "JDK: ${JDK_DIR}")
 
118
 
 
119
 
 
120
# jython
 
121
find_package(Jython REQUIRED)
 
122
 
 
123
if(JYTHON_JAR)
 
124
  set(CLASSPATH "${CLASSPATH}:${JYTHON_JAR}")
 
125
endif()
 
126
 
 
127
set(JAVA3D_LIB_DIR CACHE FILEPATH "set the location of Java3D 'lib' directory when it is not installed in the JDK")
 
128
 
 
129
if(JAVA3D_LIB_DIR)
 
130
  string(REGEX REPLACE "/$" "" JAVA3D_LIB_DIR ${JAVA3D_LIB_DIR})
 
131
  foreach(jar_file j3dcore.jar j3dutils.jar vecmath.jar)
 
132
    set(CLASSPATH "${CLASSPATH}:${JAVA3D_LIB_DIR}/ext/${jar_file}")
 
133
  endforeach()
 
134
  set(JAVA_LD_LIBRARY_PATH "${JAVA_LD_LIBRARY_PATH}:${JAVA3D_LIB_DIR}/i386")
 
135
endif()
 
136
    
 
137
set(JMFHOME $ENV{JMFHOME} CACHE FILEPATH "set the location of Java Media Framework when it is not in the class path")
 
138
 
 
139
if(JMFHOME)
 
140
  string(REGEX REPLACE "/$" "" JMFHOME ${JMFHOME})
 
141
  set(CLASSPATH "${CLASSPATH}:${JMFHOME}/lib/jmf.jar")
 
142
  set(JAVA_LD_LIBRARY_PATH "${JAVA_LD_LIBRARY_PATH}:${JMFHOME}/lib")
 
143
endif()
 
144
 
 
145
if(CLASSPATH)
 
146
  message(STATUS "Additional Java CLASSPATH is ${CLASSPATH}")
 
147
endif()
 
148
 
 
149
if(JAVA_LD_LIBRARY_PATH)
 
150
  message(STATUS "Additional Java LD_LIBRARY_PATH is ${JAVA_LD_LIBRARY_PATH}")
 
151
endif()
 
152
 
 
153
find_package(Doxygen)
 
154
 
 
155
if(NOT CMAKE_BUILD_TYPE)
 
156
  set(
 
157
    CMAKE_BUILD_TYPE Release CACHE STRING
 
158
    "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
 
159
    FORCE)
 
160
endif()
 
161
 
 
162
 
 
163
option(CHECK_UNRESOLVED_SYMBOLS "check unresolved symbols in the object files when creating shared libraries" ON)
 
164
mark_as_advanced(CHECK_UNRESOLVED_SYMBOLS)
 
165
 
 
166
if(CHECK_UNRESOLVED_SYMBOLS)
 
167
  list(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--unresolved-symbols=ignore-in-shared-libs")
 
168
endif()
 
169
 
 
170
 
 
171
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
 
172
  add_definitions(-DTVMET_OPTIMIZE)
 
173
endif()
 
174
 
 
175
include_directories(${OpenHRP_SOURCE_DIR})
 
176
 
 
177
# TODO: remove this later
 
178
include_directories(${PROJECT_SOURCE_DIR}/OpenHRP/Corba)
 
179
 
 
180
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
 
181
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
 
182
 
 
183
set(OPENHRP_IDL_DIR ${OpenHRP_SOURCE_DIR}/idl/OpenHRP)
 
184
 
 
185
 
 
186
add_subdirectory(OpenHRP)
 
187
add_subdirectory(server)
 
188
add_subdirectory(java)
 
189
add_subdirectory(client/gui)
 
190
 
 
191
add_subdirectory(sample)
 
192
 
 
193
if(EXISTS ${PROJECT_SOURCE_DIR}/PatternGenerator)
 
194
  add_subdirectory(PatternGenerator)
 
195
endif()
 
196
 
 
197
configure_file(
 
198
  ${PROJECT_SOURCE_DIR}/bin/unix/config.sh.in
 
199
  ${PROJECT_BINARY_DIR}/bin/unix/config.sh
 
200
  @ONLY)