diff --git a/CMakeLists.txt b/CMakeLists.txt index bec5c8a..e4f14a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,6 @@ if(CMAKE_THREAD_LIBS_INIT) set(THREAD_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${THREAD_LIBRARIES}) endif(CMAKE_THREAD_LIBS_INIT) - find_package(PkgConfig) if(PKGCONFIG_FOUND) set(HAVE_PKG_CONFIG 1) @@ -60,11 +59,10 @@ if(USE_SSM) find_package(SSM) endif(USE_SSM) -set(READLINE_LIBRARIES "") -find_library(READLINE_LIBRARIES readline) -if(READLINE_LIBRARIES ) +find_package(Readline) +if(READLINE_FOUND) add_definitions(-DHAVE_LIBREADLINE=1) -endif(READLINE_LIBRARIES ) +endif(READLINE_FOUND) include(CheckFunctionExists) check_function_exists(longjmp HAVE_LONGJMP) diff --git a/Dockerfile.test b/Dockerfile.test index e26d19a..2d1628d 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -20,3 +20,13 @@ COPY ./ /yp-spur RUN mkdir -p /yp-spur/build WORKDIR /yp-spur/build RUN cmake .. && make -j && make test && make install +# check that ypspur-interpreter is built without readline +RUN ldd ypspur-interpreter | grep libreadline.so; test $? -eq 1 + +RUN apt-get install -y --no-install-recommends libreadline-dev + +RUN mkdir -p /yp-spur/build-readline +WORKDIR /yp-spur/build-readline +RUN cmake .. && make -j && make test && make install +# check that ypspur-interpreter is built with readline +RUN ldd ypspur-interpreter | grep libreadline.so diff --git a/cmake/modules/FindReadline.cmake b/cmake/modules/FindReadline.cmake new file mode 100644 index 0000000..c50a117 --- /dev/null +++ b/cmake/modules/FindReadline.cmake @@ -0,0 +1,19 @@ +# Find readline library + +find_path(READLINE_INCLUDE_DIRS readline/readline.h + HINTS ENV READLINE_DIR + PATH_SUFFIXES include +) +find_library(READLINE_LIBRARIES_FOUND + NAMES readline + HINTS ENV READLINE_DIR +) +if(READLINE_LIBRARIES_FOUND) + set(READLINE_LIBRARIES readline) +endif(READLINE_LIBRARIES_FOUND) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(READLINE + DEFAULT_MSG READLINE_LIBRARIES + READLINE_INCLUDE_DIRS +) diff --git a/cmake/modules/FindSSM.cmake b/cmake/modules/FindSSM.cmake index 3437d31..c50ca22 100644 --- a/cmake/modules/FindSSM.cmake +++ b/cmake/modules/FindSSM.cmake @@ -22,4 +22,3 @@ find_package_handle_standard_args(SSM SSM_INCLUDE_DIRS SSM_EXECUTABLE ) - diff --git a/cmake/modules/GetGitRevision.cmake b/cmake/modules/GetGitRevision.cmake index 0a13659..c4771e9 100644 --- a/cmake/modules/GetGitRevision.cmake +++ b/cmake/modules/GetGitRevision.cmake @@ -24,4 +24,3 @@ function(get_git_revision) set(GIT_REVISION ${REVISION} PARENT_SCOPE) endfunction(get_git_revision) - diff --git a/package.xml b/package.xml index b0d0da4..1dba4ef 100644 --- a/package.xml +++ b/package.xml @@ -7,7 +7,11 @@ MIT cmake + + libreadline-dev + catkin + libreadline cmake