diff options
author | Adam Schubert <adam.schubert@sg1-game.net> | 2015-07-01 10:11:53 +0200 |
---|---|---|
committer | Adam Schubert <adam.schubert@sg1-game.net> | 2015-07-01 10:11:53 +0200 |
commit | 29e4edf16e4d730b2145fc3c8732b59cae557b97 (patch) | |
tree | 3cb65dd529174ee638a9467bf783b91e82f0269d | |
parent | a68fe85ffd389e911ecfae924948a40b1bed28fd (diff) | |
parent | ca03d4695e22b15da4b4c14c79a1791093ea65f0 (diff) | |
download | librsync-29e4edf16e4d730b2145fc3c8732b59cae557b97.tar.gz |
Merge pull request #1 from paulharris/issue-cmake1
Issue cmake1
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 75 | ||||
-rwxr-xr-x | tests/delta.test | 2 | ||||
-rwxr-xr-x | tests/help.test | 8 | ||||
-rwxr-xr-x | tests/isprefix.test | 20 | ||||
-rwxr-xr-x | tests/mutate.test | 6 | ||||
-rwxr-xr-x | tests/signature.test | 2 | ||||
-rw-r--r-- | tests/testcommon.sh | 14 |
8 files changed, 63 insertions, 66 deletions
@@ -18,3 +18,5 @@ html latex Testing *.user +.sw? +.*.sw? diff --git a/CMakeLists.txt b/CMakeLists.txt index e0e4914..f48f62a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -159,93 +159,81 @@ if(DOXYGEN_FOUND) endif(DOXYGEN_FOUND) # Generate prototab.c/h -execute_process(COMMAND ${PERL_EXECUTABLE} "${CMAKE_SOURCE_DIR}/src/mkprototab.pl" "${CMAKE_SOURCE_DIR}/src/prototab.c" "${CMAKE_SOURCE_DIR}/src/prototab.h") +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src) +execute_process(COMMAND ${PERL_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/src/mkprototab.pl" "${CMAKE_CURRENT_BINARY_DIR}/src/prototab.c" "${CMAKE_CURRENT_BINARY_DIR}/src/prototab.h") # Testing # build testsuite add_subdirectory(tests) -add_test(NAME Help COMMAND help.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Isprefix COMMAND isprefix.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Mutate COMMAND mutate.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Signature COMMAND signature.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Sources COMMAND sources.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Triple COMMAND triple.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Delta COMMAND delta.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) -add_test(NAME Changes COMMAND changes.test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Help COMMAND help.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Isprefix COMMAND isprefix.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Mutate COMMAND mutate.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Signature COMMAND signature.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Sources COMMAND sources.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Triple COMMAND triple.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Delta COMMAND delta.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_test(NAME Changes COMMAND changes.test ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) enable_testing() # Create conf files -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/src/config.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config.h) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/librsync-config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/src/librsync-config.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/librsync-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/librsync-config.h) +# We need to be able to #include "file" from a few places, +# * The original source dir +# * The generated source dir +include_directories(${CMAKE_CURRENT_BINARY_DIR}/src) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) + ########### next target ############### +# Only list the .c files that need to be compiled +# (Don't list .h files) + set(rsync_LIB_SRCS - src/prototab.c - src/prototab.h + # This was generated + ${CMAKE_CURRENT_BINARY_DIR}/src/prototab.c src/base64.c src/buf.c - src/buf.h - src/config.h src/checksum.c - src/checksum.h src/command.c - src/command.h src/delta.c src/emit.c - src/emit.h src/fileutil.c - src/fileutil.h src/hex.c src/job.c - src/job.h src/mdfour.c - src/mdfour.h src/mksum.c src/msg.c src/netint.c - src/netint.h src/patch.c src/readsums.c - src/librsync.h - src/librsync-config.h src/rollsum.c - src/rollsum.h src/scoop.c src/search.c - src/search.h src/stats.c src/stream.c - src/stream.h src/sumset.c - src/sumset.h src/trace.c - src/trace.h src/tube.c - src/types.h src/util.c - src/util.h src/version.c src/whole.c - src/whole.h - src/snprintf.h - src/blake2b-ref.c - src/blake2.h - src/blake2-impl.h) + src/blake2b-ref.c) add_library(rsync SHARED ${rsync_LIB_SRCS}) target_link_libraries(rsync -${BZIP2_LIBRARIES} -${ZLIB_LIBRARIES} + ${BZIP2_LIBRARIES} + ${ZLIB_LIBRARIES} ) set_target_properties(rsync PROPERTIES VERSION 1.0.0 SOVERSION 1) @@ -256,11 +244,7 @@ install(TARGETS rsync ${INSTALL_TARGETS_DEFAULT_ARGS} DESTINATION lib) set(rdiff_SRCS src/rdiff.c - src/isprefix.c - src/isprefix.h - src/librsync.h - src/librsync-config.h - src/trace.h) + src/isprefix.c) add_executable(rdiff ${rdiff_SRCS}) @@ -271,4 +255,7 @@ install(TARGETS rdiff ${INSTALL_TARGETS_DEFAULT_ARGS} DESTINATION bin) ########### install files ############### -install(FILES librsync.h librsync-config.h DESTINATION include) +install(FILES + src/librsync.h + ${CMAKE_CURRENT_BINARY_DIR}/src/librsync-config.h + DESTINATION include) diff --git a/tests/delta.test b/tests/delta.test index 65ba0fa..9b6646c 100755 --- a/tests/delta.test +++ b/tests/delta.test @@ -33,7 +33,7 @@ for delta in $inputdir/*.delta do for inbuf in $bufsizes do - cmd="../rdiff -I$inbuf patch /dev/null $delta $new" + cmd="$bindir/rdiff -I$inbuf patch /dev/null $delta $new" run_test $cmd expect=$inputdir/`basename $delta .delta`.expect check_compare $expect $new diff --git a/tests/help.test b/tests/help.test index 188de97..93efd02 100755 --- a/tests/help.test +++ b/tests/help.test @@ -23,8 +23,8 @@ srcdir='.' . $srcdir/testcommon.sh -run_test ../rdiff --help -run_test ../rdiff --version +run_test $bindir/rdiff --help +run_test $bindir/rdiff --version -run_test ../rdiff --help | grep ' --statistics' -run_test ../rdiff --version | grep 'Copyright' +run_test $bindir/rdiff --help | grep ' --statistics' +run_test $bindir/rdiff --version | grep 'Copyright' diff --git a/tests/isprefix.test b/tests/isprefix.test index abd679c..fa93bdc 100755 --- a/tests/isprefix.test +++ b/tests/isprefix.test @@ -10,14 +10,14 @@ srcdir='.' . $srcdir/testcommon.sh -run_test ./isprefix.driver foo foobar -run_test ./isprefix.driver '' foobar -run_test ./isprefix.driver foobar foobar -run_test ./isprefix.driver f f -run_test ./isprefix.driver '' '' -run_test ./isprefix.driver f foobar +run_test $bindir/tests/isprefix.driver foo foobar +run_test $bindir/tests/isprefix.driver '' foobar +run_test $bindir/tests/isprefix.driver foobar foobar +run_test $bindir/tests/isprefix.driver f f +run_test $bindir/tests/isprefix.driver '' '' +run_test $bindir/tests/isprefix.driver f foobar -run_test ./isprefix.driver ! foobar foo -run_test ./isprefix.driver ! goo foo -run_test ./isprefix.driver ! foo '' -run_test ./isprefix.driver ! f g +run_test $bindir/tests/isprefix.driver ! foobar foo +run_test $bindir/tests/isprefix.driver ! goo foo +run_test $bindir/tests/isprefix.driver ! foo '' +run_test $bindir/tests/isprefix.driver ! f g diff --git a/tests/mutate.test b/tests/mutate.test index 3495f1e..1d0d3d7 100755 --- a/tests/mutate.test +++ b/tests/mutate.test @@ -48,9 +48,9 @@ do for hashopt in '' -Hmd4 -Hblake2 do - run_test ../rdiff $debug signature $old $sig - run_test ../rdiff $debug delta $sig $new $delta - run_test ../rdiff $debug patch $old $delta "$out" + run_test $bindir/rdiff $debug signature $old $sig + run_test $bindir/rdiff $debug delta $sig $new $delta + run_test $bindir/rdiff $debug patch $old $delta "$out" check_compare "$new" "$out" "mutate $i $old $new" done diff --git a/tests/signature.test b/tests/signature.test index c150564..8403875 100755 --- a/tests/signature.test +++ b/tests/signature.test @@ -35,7 +35,7 @@ do for inbuf in $bufsizes do expect=`echo $input | sed -e 's/.in$/.sig/' -e "s,input,input/$hashfunc,"` - run_test ../rdiff --hash=$hashfunc -I$inbuf signature "$input" "$new" + run_test $bindir/rdiff --hash=$hashfunc -I$inbuf signature "$input" "$new" check_compare "$expect" "$new" done done diff --git a/tests/testcommon.sh b/tests/testcommon.sh index 2cf0f15..6f9264c 100644 --- a/tests/testcommon.sh +++ b/tests/testcommon.sh @@ -17,6 +17,14 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# For CMake tests +bindir=$1 +if [ -z "$bindir" ] +then + # Fallback to automake tests + bindir='..' +fi +echo "BINDIR $bindir" testinputdir=$srcdir/$test_base.input tmpdir=`mktemp -d -t librsynctest_XXXXXXXX` @@ -79,10 +87,10 @@ triple_test () { new="$3" hashopt="$4" - run_test ../rdiff $debug $hashopt -I$buf -O$buf $stats signature --block-size=$block_len \ + run_test $bindir/rdiff $debug $hashopt -I$buf -O$buf $stats signature --block-size=$block_len \ $old $tmpdir/sig - run_test ../rdiff $debug $hashopt -I$buf -O$buf $stats delta $tmpdir/sig $new $tmpdir/delta - run_test ../rdiff $debug $hashopt -I$buf -O$buf $stats patch $old $tmpdir/delta $tmpdir/new + run_test $bindir/rdiff $debug $hashopt -I$buf -O$buf $stats delta $tmpdir/sig $new $tmpdir/delta + run_test $bindir/rdiff $debug $hashopt -I$buf -O$buf $stats patch $old $tmpdir/delta $tmpdir/new check_compare $new $tmpdir/new "triple -I$buf -O$buf $old $new" } |