2
# @author Shin'ichiro Nakaoka
4
cmake_minimum_required(VERSION 2.4)
8
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
9
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules/)
11
include(FindPkgConfig)
12
include(CheckIncludeFiles)
17
# check "dlfcn.h" for using dlopen() and dlclose()
19
check_include_files(dlfcn.h HAVE_DLFCN_H)
21
message(FATAL_ERROR "Could not find dlfcn.h")
27
if(NOT Boost_INCLUDE_DIRS AND NOT Boost_LIBRARY_DIRS)
28
find_package(Boost REQUIRED)
30
message(STATUS "Found Boost C++ library in ${Boost_INCLUDE_DIRS}")
34
include_directories(${Boost_INCLUDE_DIRS})
35
link_directories(${Boost_LIBRARY_DIRS})
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")
41
# check blas and lapack
42
find_package(Lapack REQUIRED)
43
include_directories(${LAPACK_INCLUDE_DIRS})
44
link_directories(${LAPACK_LIBRARY_DIRS})
48
find_package(Tvmet REQUIRED)
49
include_directories(${TVMET_INCLUDE_DIR})
53
find_package(JPEG REQUIRED)
54
include_directories(${JPEG_INCLUDE_DIR})
57
find_package(PNG REQUIRED)
58
include_directories(${PNG_INCLUDE_DIR})
63
pkg_check_modules(OMNIORB REQUIRED omniORB4)
65
set(OMNIORB_DIR ${OMNIORB_PREFIX})
66
message(STATUS "Found omniORB ${OMNIORB_VERSION} in ${OMNIORB_PREFIX}")
69
set(OMNIORB_INCLUDE_DIRS ${OMNIORB_DIR}/include)
70
set(OMNIORB_LIBRARY_DIRS ${OMNIORB_DIR}/lib)
73
include_directories(${OMNIORB_INCLUDE_DIRS})
74
link_directories(${OMNIORB_LIBRARY_DIRS})
75
add_definitions(${OMNIORB_CFLAGS})
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")
82
find_package(OpenRTM REQUIRED)
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})
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}")
100
set(JDK_DIR ${JDK_DIR} CACHE PATH "JDK path")
101
string(REGEX REPLACE "/$" "" JDK_DIR ${JDK_DIR})
108
set(NATIVE2ASCII native2ascii)
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)
117
message(STATUS "JDK: ${JDK_DIR}")
121
find_package(Jython REQUIRED)
124
set(CLASSPATH "${CLASSPATH}:${JYTHON_JAR}")
127
set(JAVA3D_LIB_DIR CACHE FILEPATH "set the location of Java3D 'lib' directory when it is not installed in the JDK")
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}")
134
set(JAVA_LD_LIBRARY_PATH "${JAVA_LD_LIBRARY_PATH}:${JAVA3D_LIB_DIR}/i386")
137
set(JMFHOME $ENV{JMFHOME} CACHE FILEPATH "set the location of Java Media Framework when it is not in the class path")
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")
146
message(STATUS "Additional Java CLASSPATH is ${CLASSPATH}")
149
if(JAVA_LD_LIBRARY_PATH)
150
message(STATUS "Additional Java LD_LIBRARY_PATH is ${JAVA_LD_LIBRARY_PATH}")
153
find_package(Doxygen)
155
if(NOT CMAKE_BUILD_TYPE)
157
CMAKE_BUILD_TYPE Release CACHE STRING
158
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
163
option(CHECK_UNRESOLVED_SYMBOLS "check unresolved symbols in the object files when creating shared libraries" ON)
164
mark_as_advanced(CHECK_UNRESOLVED_SYMBOLS)
166
if(CHECK_UNRESOLVED_SYMBOLS)
167
list(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--unresolved-symbols=ignore-in-shared-libs")
171
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
172
add_definitions(-DTVMET_OPTIMIZE)
175
include_directories(${OpenHRP_SOURCE_DIR})
177
# TODO: remove this later
178
include_directories(${PROJECT_SOURCE_DIR}/OpenHRP/Corba)
180
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
181
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
183
set(OPENHRP_IDL_DIR ${OpenHRP_SOURCE_DIR}/idl/OpenHRP)
186
add_subdirectory(OpenHRP)
187
add_subdirectory(server)
188
add_subdirectory(java)
189
add_subdirectory(client/gui)
191
add_subdirectory(sample)
193
if(EXISTS ${PROJECT_SOURCE_DIR}/PatternGenerator)
194
add_subdirectory(PatternGenerator)
198
${PROJECT_SOURCE_DIR}/bin/unix/config.sh.in
199
${PROJECT_BINARY_DIR}/bin/unix/config.sh