Browse Source

Merge branch 'master' into python-refactor

merge-requests/181/head
Jørgen Lien Sellæg 7 months ago
parent
commit
a2e4868893
  1. 12
      CMakeLists.txt
  2. 2
      lib/libclangmm
  3. 2
      lib/tiny-process-library
  4. 16
      src/compile_commands.cpp
  5. 2
      src/source.cpp
  6. 13
      src/source_base.cpp
  7. 6
      src/source_base.hpp
  8. 3
      src/terminal.cpp
  9. 9
      src/window.cpp
  10. 2
      tests/lldb_test_files/CMakeLists.txt

12
CMakeLists.txt

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.10)
project(juci)
set(JUCI_VERSION "1.8.0.2")
set(JUCI_VERSION "1.8.1")
set(CPACK_PACKAGE_NAME "jucipp")
set(CPACK_PACKAGE_CONTACT "Ole Christian Eidheim <eidheim@gmail.com>")
@ -59,7 +59,7 @@ if(APPLE)
include_directories(/usr/local/opt/gettext/include)
set(CMAKE_MACOSX_RPATH 1)
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/libsigc++@2/lib/pkgconfig:/usr/local/opt/zlib/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig")
set(ENV{PKG_CONFIG_PATH} "/opt/homebrew/opt/cairo/lib/pkgconfig:/opt/homebrew/opt/fontconfig/lib/pkgconfig:/usr/local/opt/fontconfig/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/libsigc++@2/lib/pkgconfig:/usr/local/opt/zlib/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig")
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES FreeBSD)
link_directories(/usr/local/lib)
@ -133,6 +133,12 @@ endif()
set(BUILD_TESTING_SAVED ${BUILD_TESTING})
set(BUILD_TESTING OFF CACHE BOOL "Disable sub-project tests" FORCE)
set(BUILD_TESTING ${BUILD_TESTING_SAVED} CACHE BOOL "Set to previous value" FORCE)
if(POLICY CMP0167)
cmake_policy(SET CMP0167 NEW)
endif()
find_package(Boost 1.54 COMPONENTS REQUIRED filesystem serialization)
find_package(ASPELL REQUIRED)
pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED)

2
lib/libclangmm

@ -1 +1 @@
Subproject commit fb6e8190fdf2c8b209e01607ab474518eb8f5b47
Subproject commit 8dca5d81af05d5184da92a2ca2ce175b5577de25

2
lib/tiny-process-library

@ -1 +1 @@
Subproject commit 6166ba5dce461438cefb57e847832aca25d510d7
Subproject commit 8bbb5a211c5c9df8ee69301da9d22fb977b27dc1

16
src/compile_commands.cpp

@ -126,6 +126,22 @@ std::vector<std::string> CompileCommands::get_arguments(const boost::filesystem:
arguments.emplace_back(resource_path);
}
#ifdef __APPLE__
// Add -isysroot argument if it is missing on MacOS, which is needed by newer libclang
if(std::none_of(arguments.begin(), arguments.end(), [](const std::string &argument) { return argument == "-isysroot"; })) {
auto sysroots = {"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk",
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"};
boost::system::error_code ec;
for(auto &sysroot : sysroots) {
if(boost::filesystem::exists(sysroot, ec)) {
arguments.emplace_back("-isysroot");
arguments.emplace_back(sysroot);
break;
}
}
}
#endif
// Do not add -fretain-comments-from-system-headers if pch is used, since the pch was most likely made without this flag
if(std::none_of(arguments.begin(), arguments.end(), [](const std::string &argument) { return argument == "-include-pch"; }))
arguments.emplace_back("-fretain-comments-from-system-headers");

2
src/source.cpp

@ -223,7 +223,7 @@ Source::View::View(const boost::filesystem::path &file_path, const Glib::RefPtr<
else {
if(is_language({"cmake", "makefile", "python", "python3", "sh", "perl", "ruby", "r", "asm", "automake", "yaml", "docker", "julia"}))
comment_characters = "#";
else if(is_language({"latex", "matlab", "octave", "bibtex"}))
else if(is_language({"latex", "matlab", "octave", "bibtex", "prolog"}))
comment_characters = "%";
else if(language_id == "fortran")
comment_characters = "!";

13
src/source_base.cpp

@ -10,6 +10,12 @@
#include <gtksourceview/gtksource.h>
#include <regex>
#ifdef __APPLE__
GdkModifierType Source::CommonView::primary_modifier_mask = GDK_MOD2_MASK;
#else
GdkModifierType Source::CommonView::primary_modifier_mask = GDK_CONTROL_MASK;
#endif
Source::CommonView::CommonView(const Glib::RefPtr<Gsv::Language> &language) : Gsv::View() {
set_tab_width(4); // Visual size of a \t hardcoded to be equal to visual size of 4 spaces
@ -369,13 +375,6 @@ Source::BaseView::BaseView(const boost::filesystem::path &file_path, const Glib:
}
set_tab_char_and_size(tab_char, tab_size);
#ifdef __APPLE__
primary_modifier_mask = GDK_MOD2_MASK;
#else
primary_modifier_mask = GDK_CONTROL_MASK;
#endif
set_snippets();
snippet_parameter_tag = get_buffer()->create_tag();

6
src/source_base.hpp

@ -50,6 +50,9 @@ namespace Source {
bool keep_clipboard = false;
/// Apple key for MacOS, and control key otherwise
static GdkModifierType primary_modifier_mask;
bool on_key_press_event(GdkEventKey *event) override;
bool on_motion_notify_event(GdkEventMotion *motion_event) override;
@ -146,9 +149,6 @@ namespace Source {
std::string tab;
std::pair<char, unsigned> find_tab_char_and_size();
/// Apple key for MacOS, and control key otherwise
GdkModifierType primary_modifier_mask;
/// Move iter to line start. Depending on iter position, before or after indentation.
/// Works with wrapped lines.
Gtk::TextIter get_smart_home_iter(const Gtk::TextIter &iter);

3
src/terminal.cpp

@ -626,7 +626,8 @@ bool Terminal::on_key_press_event(GdkEventKey *event) {
if(event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End ||
event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down ||
event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down ||
event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_Right)
event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_Right ||
((event->state & primary_modifier_mask) && event->keyval == GDK_KEY_a))
return Source::CommonView::on_key_press_event(event);
LockGuard lock(processes_mutex);

9
src/window.cpp

@ -357,7 +357,7 @@ void Window::set_menu_actions() {
// Depending on default_build_management_system, generate build configuration
if(Config::get().project.default_build_management_system == "cmake") {
build_config_path = project_path / "CMakeLists.txt";
build_config = "cmake_minimum_required(VERSION 3.5)\n\nproject(" + project_name + ")\n\nset(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -std=c11 -Wall -Wextra\")\n\nadd_executable(" + project_name + " main.c)\n";
build_config = "cmake_minimum_required(VERSION 3.10)\n\nproject(" + project_name + ")\n\nset(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -std=c11 -Wall -Wextra\")\n\nadd_executable(" + project_name + " main.c)\n";
}
else if(Config::get().project.default_build_management_system == "meson") {
build_config_path = project_path / "meson.build";
@ -414,7 +414,7 @@ void Window::set_menu_actions() {
// Depending on default_build_management_system, generate build configuration
if(Config::get().project.default_build_management_system == "cmake") {
build_config_path = project_path / "CMakeLists.txt";
build_config = "cmake_minimum_required(VERSION 3.5)\n\nproject(" + project_name + ")\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++1y -Wall -Wextra\")\n\nadd_executable(" + project_name + " main.cpp)\n";
build_config = "cmake_minimum_required(VERSION 3.10)\n\nproject(" + project_name + ")\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++1y -Wall -Wextra\")\n\nadd_executable(" + project_name + " main.cpp)\n";
}
else if(Config::get().project.default_build_management_system == "meson") {
build_config_path = project_path / "meson.build";
@ -2013,8 +2013,11 @@ bool Window::on_key_press_event(GdkEventKey *event) {
}
}
if(event->keyval == GDK_KEY_Escape)
if(event->keyval == GDK_KEY_Escape) {
EntryBox::get().hide();
if(auto view = Notebook::get().get_current_view())
view->hide_tooltips();
}
#ifdef __APPLE__ // For Apple's Command-left, right, up, down keys
else if((event->state & GDK_META_MASK) > 0 && (event->state & GDK_MOD1_MASK) == 0) {
if(event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_KP_Left) {

2
tests/lldb_test_files/CMakeLists.txt

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.10)
add_compile_options(-O0 -g -Wno-unused-but-set-variable)

Loading…
Cancel
Save