Merge pull request #376 from vgough/osx

Special case FDATASYNC check on Apple
This commit is contained in:
Valient Gough 2017-08-08 01:58:18 -04:00 committed by GitHub
commit 1eb93609ce
7 changed files with 38 additions and 8 deletions

View File

@ -4,18 +4,26 @@ language: cpp
sudo: true sudo: true
os:
- linux
- osx
compiler: compiler:
- clang - clang
- gcc - gcc
matrix:
exclude:
- os: osx
compiler: gcc
branches: branches:
only: only:
- master - master
- travis - travis
before_script: before_script:
- sudo modprobe fuse - ./ci/setup.sh
- cmake --version
script: script:
- ./ci/check.sh - ./ci/check.sh

View File

@ -97,7 +97,12 @@ check_cxx_source_compiles ("#include <sys/types.h>
include (CheckFuncs) include (CheckFuncs)
check_function_exists_glibc (lchmod HAVE_LCHMOD) check_function_exists_glibc (lchmod HAVE_LCHMOD)
check_function_exists_glibc (utimensat HAVE_UTIMENSAT) check_function_exists_glibc (utimensat HAVE_UTIMENSAT)
check_function_exists_glibc (fdatasync HAVE_FDATASYNC) if (APPLE)
message ("-- There is no usable FDATASYNC on Apple")
set(HAVE_FDATASYNC FALSE)
else()
check_function_exists_glibc (fdatasync HAVE_FDATASYNC)
endif (APPLE)
set (CMAKE_THREAD_PREFER_PTHREAD) set (CMAKE_THREAD_PREFER_PTHREAD)
find_package (Threads REQUIRED) find_package (Threads REQUIRED)

View File

@ -7,7 +7,7 @@ if [[ ! -d build ]]
then then
mkdir build mkdir build
cd build cd build
cmake .. cmake .. $*
cd .. cd ..
fi fi

View File

@ -1,12 +1,19 @@
#!/bin/bash -eu #!/bin/bash -eu
cmake --version
CFG=""
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
CFG="-DENABLE_NLS=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
fi
if [[ ! -d build ]] if [[ ! -d build ]]
then then
mkdir build mkdir build
fi fi
cd build cd build
cmake .. cmake .. ${CFG}
make -j2 make -j2
make test make test

10
ci/setup.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash -eu
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
sudo modprobe fuse
fi
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew cask install osxfuse
fi

View File

@ -258,7 +258,7 @@ int FileNode::sync(bool datasync) {
int fh = io->open(O_RDONLY); int fh = io->open(O_RDONLY);
if (fh >= 0) { if (fh >= 0) {
int res = -EIO; int res = -EIO;
#ifdef linux #if defined(HAVE_FDATASYNC)
if (datasync) { if (datasync) {
res = fdatasync(fh); res = fdatasync(fh);
} else { } else {

View File

@ -1035,7 +1035,7 @@ RootPtr createV6Config(EncFS_Context *ctx,
alg = findCipherAlgorithm("AES", keySize); alg = findCipherAlgorithm("AES", keySize);
// If case-insensitive system, opt for Block32 filename encoding // If case-insensitive system, opt for Block32 filename encoding
#if DEFAULT_CASE_INSENSITIVE #if defined(DEFAULT_CASE_INSENSITIVE)
nameIOIface = BlockNameIO::CurrentInterface(true); nameIOIface = BlockNameIO::CurrentInterface(true);
#else #else
nameIOIface = BlockNameIO::CurrentInterface(); nameIOIface = BlockNameIO::CurrentInterface();