From b3f744f56786437cb42d16b2ebd37a9dc0463161 Mon Sep 17 00:00:00 2001 From: hartbook <franck.dary@etu.univ-amu.fr> Date: Tue, 3 Jul 2018 16:35:28 +0200 Subject: [PATCH] Updated CMakeLists to use Boost.program_options --- CMakeLists.txt | 8 ++++++-- cmake/Modules/Findeigen3.cmake | 16 ++++++++++++++++ cmake/Modules/Findfasttext.cmake | 27 +++++++++++++++++++++++++++ tests/CMakeLists.txt | 2 ++ tests/src/test_train.cpp | 1 + 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 cmake/Modules/Findeigen3.cmake create mode 100644 cmake/Modules/Findfasttext.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index c30ddfc..b99cff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,15 @@ cmake_minimum_required(VERSION 2.8.7) project(macaon) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules") + +find_package(dynet REQUIRED) +find_package(eigen3 REQUIRED) +find_package(Boost REQUIRED COMPONENTS program_options) + set(CMAKE_VERBOSE_MAKEFILE 0) set(CMAKE_CXX_STANDARD 11) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules") - if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() diff --git a/cmake/Modules/Findeigen3.cmake b/cmake/Modules/Findeigen3.cmake new file mode 100644 index 0000000..0c323bc --- /dev/null +++ b/cmake/Modules/Findeigen3.cmake @@ -0,0 +1,16 @@ +# - Try to find eigen3 +# Once done this will define +# EIGEN3_FOUND - System has eigen3 +# EIGEN3_INCLUDE_DIRS - The eigen3 include directories +# EIGEN3_LIBRARIES - The libraries needed to use eigen3 +# EIGEN3_DEFINITIONS - Compiler switches required for using eigen3 + +find_package(PkgConfig) + pkg_check_modules(PC_EIGEN3 QUIET eigen3) + + find_path(EIGEN3_INCLUDE_DIR eigen3/model.h + HINTS ${PC_EIGEN3_INCLUDEDIR} ${PC_DYNET_INCLUDE_DIRS} + PATH_SUFFIXES eigen3 ) + +set(EIGEN3_LIBRARIES ${DYNET_LIBRARY} ) +set(EIGEN3_INCLUDE_DIRS ${DYNET_INCLUDE_DIR}/eigen3 ) diff --git a/cmake/Modules/Findfasttext.cmake b/cmake/Modules/Findfasttext.cmake new file mode 100644 index 0000000..ee000a0 --- /dev/null +++ b/cmake/Modules/Findfasttext.cmake @@ -0,0 +1,27 @@ +# - Try to find fasttext +# Once done this will define +# FASTTEXT_FOUND - System has fasttext +# FASTTEXT_INCLUDE_DIRS - The fasttext include directories +# FASTTEXT_LIBRARIES - The libraries needed to use fasttext +# FASTTEXT_DEFINITIONS - Compiler switches required for using fasttext + +find_package(PkgConfig) + pkg_check_modules(PC_FASTTEXT QUIET fasttext) + + find_path(FASTTEXT_INCLUDE_DIR fasttext/fasttext.h + HINTS ${PC_FASTTEXT_INCLUDEDIR} ${PC_FASTTEXT_INCLUDE_DIRS} + PATH_SUFFIXES fasttext ) + + find_library(FASTTEXT_LIBRARY NAMES fasttext + HINTS ${PC_FASTTEXT_LIBDIR} ${PC_FASTTEXT_LIBRARY_DIRS} ) + + include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set FASTTEXT_FOUND to TRUE +# if all listed variables are TRUE + find_package_handle_standard_args(fasttext DEFAULT_MSG + FASTTEXT_LIBRARY FASTTEXT_INCLUDE_DIR) + + mark_as_advanced(FASTTEXT_INCLUDE_DIR FASTTEXT_LIBRARY ) + + set(FASTTEXT_LIBRARIES ${FASTTEXT_LIBRARY} ) + set(FASTTEXT_INCLUDE_DIRS ${FASTTEXT_INCLUDE_DIR}/fasttext ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c76bc3d..043734e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -3,7 +3,9 @@ FILE(GLOB SOURCES src/*.cpp) add_executable(test_train src/test_train.cpp) target_link_libraries(test_train tape_machine) target_link_libraries(test_train trainer) +target_link_libraries(test_train ${Boost_PROGRAM_OPTIONS_LIBRARY}) add_executable(test_decode src/test_decode.cpp) target_link_libraries(test_decode tape_machine) target_link_libraries(test_decode decoder) +target_link_libraries(test_train ${Boost_PROGRAM_OPTIONS_LIBRARY}) diff --git a/tests/src/test_train.cpp b/tests/src/test_train.cpp index d2d1766..764bda5 100644 --- a/tests/src/test_train.cpp +++ b/tests/src/test_train.cpp @@ -1,5 +1,6 @@ #include <cstdio> #include <cstdlib> +#include <boost/program_options.hpp> #include "MCD.hpp" #include "Config.hpp" #include "TapeMachine.hpp" -- GitLab