From 3e146234e8a2511b8a52d7d08ca58fd3d862d437 Mon Sep 17 00:00:00 2001 From: "Mohammad S. Babaei" Date: Mon, 11 Jul 2016 15:13:45 +0430 Subject: [PATCH] builds on FreeBSD. related to #253 --- src/CMakeLists.txt | 8 ++++++++ src/directories.cc | 6 +++++- src/git.cc | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 75ce786..ad2ca9e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -27,6 +27,13 @@ set(global_libraries ${global_libraries} ${LIBGIT2_LIBRARIES} ) +if (${CMAKE_SYSTEM_NAME} MATCHES FreeBSD) + set(global_link_directories /usr/local/lib) +endif() +set(global_link_directories + ${Boost_LIBRARY_DIRS} +) + set(project_files config.cc dialogs.cc @@ -86,6 +93,7 @@ else() endif() include_directories(${global_includes}) +link_directories(${global_link_directories}) add_library(project_shared OBJECT ${project_shared_files}) diff --git a/src/directories.cc b/src/directories.cc index d1a64ab..736e599 100644 --- a/src/directories.cc +++ b/src/directories.cc @@ -541,11 +541,15 @@ void Directories::add_or_update_path(const boost::filesystem::path &dir_path, co if(path_it==directories.end()) { auto g_file=Glib::wrap(g_file_new_for_path(dir_path.string().c_str())); //TODO: report missing constructor in giomm - + +#if defined(__FreeBSD__) + auto monitor=g_file->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_SEND_MOVED); +#else #if GLIBMM_MAJOR_VERSION>2 || (GLIBMM_MAJOR_VERSION==2 && GLIBMM_MINOR_VERSION>=44) auto monitor=g_file->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_WATCH_MOVES); #else auto monitor=g_file->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_SEND_MOVED); +#endif #endif auto path_and_row=std::make_shared >(dir_path, row); auto connection=std::make_shared(); diff --git a/src/git.cc b/src/git.cc index 7df273f..a996a8c 100644 --- a/src/git.cc +++ b/src/git.cc @@ -104,10 +104,14 @@ Git::Repository::Repository(const boost::filesystem::path &path) { auto git_path_str=boost::filesystem::canonical(get_path()).string(); auto git_directory=Glib::wrap(g_file_new_for_path(git_path_str.c_str())); //TODO: report missing constructor in giomm +#if defined(__FreeBSD__) + monitor=git_directory->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_SEND_MOVED); +#else #if GLIBMM_MAJOR_VERSION>2 || (GLIBMM_MAJOR_VERSION==2 && GLIBMM_MINOR_VERSION>=44) monitor=git_directory->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_WATCH_MOVES); #else monitor=git_directory->monitor_directory(Gio::FileMonitorFlags::FILE_MONITOR_SEND_MOVED); +#endif #endif monitor_changed_connection=monitor->signal_changed().connect([this](const Glib::RefPtr &file,