Skip to content

[DO NOT MERGE] compile as catkin package #431

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# http://ros.org/doc/groovy/api/catkin/html/user_guide/supposed.html
cmake_minimum_required(VERSION 2.8.3)
project(jskeus)

find_package(euslisp REQUIRED)
message(STATUS "ARCHDIR=${ARCHDIR}")
message(STATUS "EUSDIR=${EUSDIR}")

execute_process(COMMAND grep version ${PROJECT_SOURCE_DIR}/package.xml
COMMAND sed -e s/[^0-9.]//g
OUTPUT_VARIABLE jskeus_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "euslisp_VERSION : ${euslisp_VERSION}")
message(STATUS "jskeus_VERSION : ${jskeus_VERSION}")

# if EUSDIR is write protected use share as target directory
execute_process(COMMAND test -w ${EUSDIR} RESULT_VARIABLE eusdir_WRITABLE)

# catkin
find_package(catkin)
catkin_package()

# build irteus
if(${eusdir_WRITABLE} EQUAL 0)
message(STATUS "eusdir_WRITABLE : TRUE")
set(INSTALLDIR ${EUSDIR}) # install to EUSDIR
else()
message(STATUS "eusdir_WRITABLE : FALSE")
set(INSTALLDIR $ENV{DESTDIR}${CATKIN_DEVEL_PREFIX}/share/euslisp) # install to prefix/eusdir
message(STATUS "INSTALLDIR ${INSTALLDIR}")
execute_process(
COMMAND cmake -E make_directory ${INSTALLDIR}
COMMAND cmake -E copy_directory ${EUSDIR}/lib ${INSTALLDIR}/lib
COMMAND cmake -E copy_directory ${EUSDIR}/${ARCHDIR} ${INSTALLDIR}/${ARCHDIR})
endif()
add_custom_target(compile_jskeus ALL
COMMAND export EUSDIR=${EUSDIR} DISPLAY="" lt_cv_sys_lib_dlsearch_path_spec=${lt_cv_sys_lib_dlsearch_path_spec} && \$\(MAKE\) -j1 -l1 -C ${PROJECT_SOURCE_DIR}/irteus -f Makefile ARCHDIR=${ARCHDIR} EUSDIR=${EUSDIR} IRTEUSDIR=${INSTALLDIR} 'SVNVERSION=\\"${jskeus_VERSION}\\"' VERBOSE=1
COMMAND cmake -E remove -f ${INSTALLDIR}/irteus
COMMAND cmake -E create_symlink ${PROJECT_SOURCE_DIR}/irteus ${INSTALLDIR}/irteus
)

# catkin envs
if(${eusdir_WRITABLE} EQUAL 0) # EUSDIR IS WRITABLE
else() # EUSDIR IS NOT WRITABLE
catkin_add_env_hooks(99.jskeus SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks SKIP_INSTALL)
endif()

# install
install(DIRECTORY doc irteus
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
USE_SOURCE_PERMISSIONS)
install(FILES ${INSTALLDIR}/lib/irtext.l DESTINATION share/euslisp/lib)
# install ont included in euslisp
install(CODE "
foreach(dir bin lib obj)
execute_process(COMMAND cmake -E make_directory \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/euslisp/${ARCHDIR}/\${dir})
file(GLOB programs RELATIVE ${INSTALLDIR}/${ARCHDIR}/\${dir} ${INSTALLDIR}/${ARCHDIR}/\${dir}/*)
foreach(program \${programs})
if(NOT EXISTS ${EUSDIR}/${ARCHDIR}/\${dir}/\${program})
message(STATUS \"install ${ARCHDIR}/\${dir}/\${program}\")
execute_process(COMMAND cmake -E copy \${program} \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/euslisp/${ARCHDIR}/\${dir} WORKING_DIRECTORY ${INSTALLDIR}/${ARCHDIR}/\${dir})
endif()
endforeach()
endforeach()
")
install(CODE "execute_process(COMMAND cmake -E remove -f \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/euslisp/irteus)")
install(CODE "execute_process(COMMAND cmake -E create_symlink \${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/irteus \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/euslisp/irteus)")
4 changes: 4 additions & 0 deletions env-hooks/99.jskeus.sh.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export EUSDIR=@INSTALLDIR@
export LD_LIBRARY_PATH=$EUSDIR/$ARCHDIR/lib:$LD_LIBRARY_PATH
export PATH=$EUSDIR/$ARCHDIR/bin:$PATH

2 changes: 1 addition & 1 deletion irteus/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ $(BINS):
(cd $(INSTALLBINDIR); ln -sf eus$(ESFX) irteus$(ESFX))
(cd $(INSTALLBINDIR); ln -sf eusgl$(ESFX) irteusgl$(ESFX))
$(EUSDIR)/irteus:
(cd $(IRTEUSDIR); ln -sf ../irteus irteus)
(cd $(IRTEUSDIR); rm -f irteus; ln -sf ../irteus irteus)

install-irtext.l: $(IRTEUSDIR)/lib/irtext.l
$(IRTEUSDIR)/lib/irtext.l: irtext.l
Expand Down
23 changes: 23 additions & 0 deletions package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<package>
<name>jskeus</name>
<version>1.1.0</version>
<description>EusLisp software developed and used by JSK at The University of Tokyo</description>
<maintainer email="[email protected]">Kei Okada</maintainer>

<license>BSD</license>

<url type="website">http://euslisp.github.io/jskeus/manual.html</url>
<url type="bugtracker">https://github.com/euslisp/jskeus/issues</url>

<author>JSK Alumnis</author>

<buildtool_depend>catkin</buildtool_depend>

<build_depend>euslisp</build_depend>

<run_depend>euslisp</run_depend>

<export>
</export>

</package>