diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..3c34ef1dd --- /dev/null +++ b/CMakeLists.txt @@ -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)") diff --git a/env-hooks/99.jskeus.sh.in b/env-hooks/99.jskeus.sh.in new file mode 100644 index 000000000..20bc856e9 --- /dev/null +++ b/env-hooks/99.jskeus.sh.in @@ -0,0 +1,4 @@ +export EUSDIR=@INSTALLDIR@ +export LD_LIBRARY_PATH=$EUSDIR/$ARCHDIR/lib:$LD_LIBRARY_PATH +export PATH=$EUSDIR/$ARCHDIR/bin:$PATH + diff --git a/irteus/Makefile b/irteus/Makefile index d80341eae..938e5a925 100644 --- a/irteus/Makefile +++ b/irteus/Makefile @@ -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 diff --git a/package.xml b/package.xml new file mode 100644 index 000000000..7b7d60436 --- /dev/null +++ b/package.xml @@ -0,0 +1,23 @@ + + jskeus + 1.1.0 + EusLisp software developed and used by JSK at The University of Tokyo + Kei Okada + + BSD + + http://euslisp.github.io/jskeus/manual.html + https://github.com/euslisp/jskeus/issues + + JSK Alumnis + + catkin + + euslisp + + euslisp + + + + +