Skip to content

Commit

Permalink
Merge pull request #23 from JamesYang007/james.yang/documentation
Browse files Browse the repository at this point in the history
Update installation into lib directory completely
  • Loading branch information
JamesYang007 committed Apr 30, 2020
2 parents c637492 + 61a6fc4 commit 8c04eab
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 46 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -3,3 +3,4 @@ build
.*
!.travis.yml
lib
!lib/CMakeLists.txt
11 changes: 6 additions & 5 deletions .travis.yml
Expand Up @@ -19,7 +19,7 @@ jobs:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-7', 'cmake', 'ninja-build', 'valgrind',
'libopenblas-dev', 'liblapack-dev',
'libarpack2-dev', 'realpath']
'libarpack2-dev']
env:
- CXX_COMPILER="g++-7"
- CC_COMPILER="gcc-7"
Expand All @@ -34,7 +34,7 @@ jobs:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-7', 'cmake', 'ninja-build',
'libopenblas-dev', 'liblapack-dev',
'libarpack2-dev', 'realpath']
'libarpack2-dev']
before_install:
- sudo -H pip install --upgrade requests[security]
- pip install --user cpp-coveralls
Expand Down Expand Up @@ -65,7 +65,7 @@ jobs:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-7', 'ninja-build',
'libopenblas-dev', 'liblapack-dev',
'libarpack2-dev', 'realpath']
'libarpack2-dev']

- os: linux
compiler: gcc
Expand All @@ -77,7 +77,7 @@ jobs:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-8', 'ninja-build',
'libopenblas-dev', 'liblapack-dev',
'libarpack2-dev', 'realpath']
'libarpack2-dev']

- os: linux
compiler: gcc
Expand All @@ -89,7 +89,7 @@ jobs:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9', 'ninja-build',
'libopenblas-dev', 'liblapack-dev',
'libarpack2-dev', 'realpath']
'libarpack2-dev']

# Build Script

Expand All @@ -115,6 +115,7 @@ script:
${CMAKE_OPTIONS}
-DAUTOPPL_ENABLE_BENCHMARK=OFF
-DAUTOPPL_ENABLE_TEST=ON
-DAUTOPPL_ENABLE_EXAMPLE=ON
- cd build/release
- ctest ${CTEST_OPTIONS} -j12

Expand Down
20 changes: 14 additions & 6 deletions CMakeLists.txt
Expand Up @@ -24,23 +24,31 @@ message(STATUS "Compiling in ${CMAKE_BUILD_TYPE} mode")

# Add this library as interface (header-only)
add_library(${PROJECT_NAME} INTERFACE)

target_include_directories(${PROJECT_NAME}
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)

# Set C++17 standard for project target
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_17)

# Add AutoPPL header-only library to variable
set(AUTOPPL_LIBS ${PROJECT_NAME})

# Find Armadillo C++
find_package(Armadillo CONFIG REQUIRED
HINTS ${CMAKE_CURRENT_SOURCE_DIR}/lib/armadillo)
message(STATUS "Found Armadillo config at: ${Armadillo_DIR}")
if (Armadillo_FOUND)
message(STATUS "Found Armadillo config at: ${Armadillo_DIR}")
add_compile_options(-DARMA_DONT_USE_WRAPPER)
set(AUTOPPL_INCLUDE_DIRS ${AUTOPPL_INCLUDE_DIRS} ${ARMADILLO_INCLUDE_DIRS})
set(AUTOPPL_LIBS ${AUTOPPL_LIBS} ${ARMADILLO_LIBRARIES})
endif()

# Find FastAD
find_package(FastAD CONFIG REQUIRED
HINTS ${CMAKE_CURRENT_SOURCE_DIR}/lib/FastAD)
message(STATUS "Found FastAD config at: ${FastAD_DIR}")
HINTS ${CMAKE_CURRENT_SOURCE_DIR}/lib/FastAD/build)
if (FastAD_FOUND)
message(STATUS "Found FastAD config at: ${FastAD_DIR}")
set(AUTOPPL_LIBS ${AUTOPPL_LIBS} FastAD::FastAD)
endif()

# Configure tests
if (AUTOPPL_ENABLE_TEST)
Expand Down
19 changes: 13 additions & 6 deletions docs/example/CMakeLists.txt
Expand Up @@ -7,27 +7,34 @@ add_executable(model_size
model_size.cpp
)
target_compile_options(model_size PRIVATE -g -Wall -Werror -Wextra)
target_link_libraries(model_size ${PROJECT_NAME} FastAD::FastAD)
target_include_directories(model_size
PRIVATE ${AUTOPPL_INCLUDE_DIRS})
target_link_libraries(model_size ${AUTOPPL_LIBS})

# Sample from standard normal
add_executable(sample_std_normal
sample_std_normal.cpp
)
target_compile_options(sample_std_normal PRIVATE -g -Wall -Werror -Wextra)
target_link_libraries(sample_std_normal ${PROJECT_NAME} FastAD::FastAD)
target_include_directories(sample_std_normal
PRIVATE ${AUTOPPL_INCLUDE_DIRS})
target_link_libraries(sample_std_normal ${AUTOPPL_LIBS})

# Sample from some joint distribution
add_executable(sample_joint_dist
sample_joint_dist.cpp
)
target_compile_options(sample_joint_dist PRIVATE -g -Wall -Werror -Wextra)
target_link_libraries(sample_joint_dist ${PROJECT_NAME} FastAD::FastAD)
target_include_directories(sample_joint_dist
PRIVATE ${AUTOPPL_INCLUDE_DIRS})
target_link_libraries(sample_joint_dist ${AUTOPPL_LIBS})

# Normal data with posterior on mean and stddev
add_executable(normal_posterior_mean_stddev
normal_posterior_mean_stddev.cpp
)
target_compile_options(normal_posterior_mean_stddev PRIVATE
-g -Wall -Werror -Wextra -DARMA_DONT_USE_WRAPPER)
target_link_libraries(normal_posterior_mean_stddev
${PROJECT_NAME} FastAD::FastAD ${ARMADILLO_LIBRARIES})
-g -Wall -Werror -Wextra)
target_include_directories(normal_posterior_mean_stddev
PRIVATE ${AUTOPPL_INCLUDE_DIRS})
target_link_libraries(normal_posterior_mean_stddev ${AUTOPPL_LIBS})
23 changes: 8 additions & 15 deletions setup.sh
@@ -1,7 +1,5 @@
#!/bin/bash

projectdir=$(realpath "$(dirname "${BASH_SOURCE[0]}")")

gbenchpath="lib/benchmark"
gtestpath="$gbenchpath/googletest"
armapath="lib/armadillo"
Expand All @@ -26,34 +24,29 @@ fi
# setup Armadillo
if [ ! -d "$armapath" ]; then
if [[ "$OSTYPE" == "linux-gnu" || "$OSTYPE" == "darwin"* ]]; then
cd /tmp
cd lib 2>&1 /dev/null
if [[ "$OSTYPE" == "linux-gnu" ]]; then
sudo apt install libopenblas-dev liblapack-dev
fi
wget http://sourceforge.net/projects/arma/files/armadillo-9.870.2.tar.xz
if [ -d "armadillo-9.870.2" ]; then
rm -rf armadillo-9.870.2
fi
tar -xvf armadillo-9.870.2.tar.xz
cd armadillo-9.870.2
cmake . -DCMAKE_INSTALL_PREFIX="$projectdir/lib/armadillo"
cmake . -DCMAKE_INSTALL_PREFIX="../armadillo"
make
make install
cd $projectdir
cd ../../ 2>&1 /dev/null
fi
fi

# setup FastAD
if [ ! -d "$fastadpath" ]; then
cd /tmp
if [ ! -d "FastAD" ]; then
git clone https://github.com/JamesYang007/FastAD.git
fi
cd FastAD && git pull
git clone https://github.com/JamesYang007/FastAD.git $fastadpath
cd $fastadpath
./setup.sh
./clean-build.sh release -DFASTAD_ENABLE_TEST=OFF \
-DCMAKE_INSTALL_PREFIX="$projectdir/$fastadpath"
-DCMAKE_INSTALL_PREFIX=".." # installs into build
cd build/release
ninja install
cd $projectdir
cd ../../ # in lib/FastAD
cd ../../ # in working directory
fi
28 changes: 14 additions & 14 deletions test/CMakeLists.txt
Expand Up @@ -19,12 +19,13 @@ target_compile_options(util_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(util_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(util_unittest gcov)
endif()
target_link_libraries(util_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(util_unittest util_unittest)

######################################################
Expand All @@ -39,12 +40,13 @@ target_compile_options(sample_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(sample_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(sample_unittest gcov)
endif()
target_link_libraries(sample_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(sample_unittest sample_unittest)

######################################################
Expand All @@ -62,12 +64,13 @@ target_compile_options(var_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(var_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(var_unittest gcov)
endif()
target_link_libraries(var_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(var_unittest var_unittest)

######################################################
Expand All @@ -83,12 +86,13 @@ target_compile_options(dist_expr_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(dist_expr_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(dist_expr_unittest gcov)
endif()
target_link_libraries(dist_expr_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(dist_expr_unittest dist_expr_unittest)

######################################################
Expand All @@ -102,12 +106,13 @@ target_compile_options(model_expr_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(model_expr_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(model_expr_unittest gcov)
endif()
target_link_libraries(model_expr_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(model_expr_unittest model_expr_unittest)

######################################################
Expand All @@ -122,23 +127,17 @@ add_executable(algorithm_unittest
)
target_compile_options(algorithm_unittest
PRIVATE -g -Wall -Werror -Wextra
-DARMA_DONT_USE_WRAPPER
)
target_include_directories(algorithm_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${ARMADILLO_INCLUDE_DIRS}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(algorithm_unittest gcov)
endif()
target_link_libraries(algorithm_unittest
gtest_main
pthread
${PROJECT_NAME}
${ARMADILLO_LIBRARIES}
FastAD::FastAD
)
gtest_main pthread ${AUTOPPL_LIBS})

# Only on Linux: link with openblas and lapack
if (UNIX AND NOT APPLE)
Expand All @@ -159,10 +158,11 @@ target_compile_options(expr_builder_unittest PRIVATE -g -Wall -Werror -Wextra)
target_include_directories(expr_builder_unittest PRIVATE
${GTEST_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
${AUTOPPL_INCLUDE_DIRS}
)
if (AUTOPPL_ENABLE_TEST_COVERAGE)
target_link_libraries(expr_builder_unittest gcov)
endif()
target_link_libraries(expr_builder_unittest
gtest_main pthread ${PROJECT_NAME} FastAD::FastAD)
gtest_main pthread ${AUTOPPL_LIBS})
add_test(expr_builder_unittest expr_builder_unittest)

0 comments on commit 8c04eab

Please sign in to comment.