summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Schubert <adam.schubert@sg1-game.net>2015-07-01 10:11:53 +0200
committerAdam Schubert <adam.schubert@sg1-game.net>2015-07-01 10:11:53 +0200
commit29e4edf16e4d730b2145fc3c8732b59cae557b97 (patch)
tree3cb65dd529174ee638a9467bf783b91e82f0269d
parenta68fe85ffd389e911ecfae924948a40b1bed28fd (diff)
parentca03d4695e22b15da4b4c14c79a1791093ea65f0 (diff)
downloadlibrsync-29e4edf16e4d730b2145fc3c8732b59cae557b97.tar.gz
Merge pull request #1 from paulharris/issue-cmake1
Issue cmake1
-rw-r--r--.gitignore2
-rw-r--r--CMakeLists.txt75
-rwxr-xr-xtests/delta.test2
-rwxr-xr-xtests/help.test8
-rwxr-xr-xtests/isprefix.test20
-rwxr-xr-xtests/mutate.test6
-rwxr-xr-xtests/signature.test2
-rw-r--r--tests/testcommon.sh14
8 files changed, 63 insertions, 66 deletions
diff --git a/.gitignore b/.gitignore
index c5e96de..3694ca8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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"
}