From 1353188393b72da0c2e8c0f1db0757ed82417aa1 Mon Sep 17 00:00:00 2001 From: Balakrishna Avulapati Date: Fri, 26 Dec 2025 18:32:41 +0530 Subject: [PATCH 1/5] Use version agnostic homebrew prefix - Use version agnostic homebrew prefix - Recent versions of v8 requires C++ 20 - Accept V8 backend as option from make - Export compile commands from cmake - Update libjavascriptcoregtk to 4.1-dev, as ubuntu got updated Signed-off-by: Balakrishna Avulapati --- CMakeLists.txt | 2 +- Makefile | 5 +++-- cmake/FindV8.cmake | 9 ++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 297f612a..8536e8e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ include(vendor/noa/cmake/noa.cmake) include(cmake/CompilerOptions.cmake) # C++ standard -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) # Options set(INCLUDEJS_BACKEND "JavaScriptCore" CACHE STRING "The IncludeJS Engine backend") diff --git a/Makefile b/Makefile index 27ee24da..f23f4fa2 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ CTEST = ctest # Options PRESET = Debug SHARED = OFF -BACKEND = JavaScriptCore +BACKEND ?= JavaScriptCore all: configure compile test @@ -17,7 +17,8 @@ configure: .always -DINCLUDEJS_ENGINE:BOOL=ON \ -DINCLUDEJS_TESTS:BOOL=ON \ -DINCLUDEJS_DOCS:BOOL=ON \ - -DBUILD_SHARED_LIBS:BOOL=$(SHARED) + -DBUILD_SHARED_LIBS:BOOL=$(SHARED) \ + -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON compile: .always $(CMAKE) --build ./build --config $(PRESET) --target clang_format diff --git a/cmake/FindV8.cmake b/cmake/FindV8.cmake index eb6cb15f..8ee6146c 100644 --- a/cmake/FindV8.cmake +++ b/cmake/FindV8.cmake @@ -5,16 +5,15 @@ if(NOT V8_FOUND) # Clang, it is unable to find the V8 library and headers which have been # downloaded from Homebrew. # Refs: https://github.com/Homebrew/homebrew-core/issues/45061#issuecomment-541420664 - set(V8_VERSION "12.1.285.24") if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - set(HOMEBREW_CELLAR "/opt/homebrew/Cellar") + set(HOMEBREW_PREFIX "/opt/homebrew/opt/v8") elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(HOMEBREW_CELLAR "/usr/local/Cellar") + set(HOMEBREW_PREFIX "/usr/local/opt/v8") endif() target_include_directories(v8 - INTERFACE "${HOMEBREW_CELLAR}/v8/${V8_VERSION}/include") + INTERFACE "${HOMEBREW_PREFIX}/include") target_link_directories(v8 - INTERFACE "${HOMEBREW_CELLAR}/v8/${V8_VERSION}/lib") + INTERFACE "${HOMEBREW_PREFIX}/lib") target_link_libraries(v8 INTERFACE "-lv8") target_link_libraries(v8 INTERFACE "-lv8_libplatform") target_compile_definitions(v8 From 0f96bd1fce2d7365a3aa116b02c856555f5027ff Mon Sep 17 00:00:00 2001 From: Balakrishna Avulapati Date: Fri, 26 Dec 2025 19:07:36 +0530 Subject: [PATCH 2/5] update libjavascriptcoregtk as ubuntu got updated on github actions Signed-off-by: Balakrishna Avulapati --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ad084f6..c7649b2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,7 +82,7 @@ jobs: if: runner.os == 'linux' run: | sudo apt-get update --yes - sudo apt-get install --yes libjavascriptcoregtk-4.0-dev + sudo apt-get install --yes libjavascriptcoregtk-4.1-dev # See https://github.com/actions/runner-images/issues/8659 - name: Workaround Clang issue (GNU/Linux) From 3448abc27001c086f92a678e207d811b51ccc297 Mon Sep 17 00:00:00 2001 From: Balakrishna Avulapati Date: Fri, 26 Dec 2025 19:20:53 +0530 Subject: [PATCH 3/5] checking if this is no more needed Signed-off-by: Balakrishna Avulapati --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7649b2f..eebf880a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,11 +85,11 @@ jobs: sudo apt-get install --yes libjavascriptcoregtk-4.1-dev # See https://github.com/actions/runner-images/issues/8659 - - name: Workaround Clang issue (GNU/Linux) - if: runner.os == 'linux' && matrix.platform.cc == 'clang' - run: | - sudo apt-get purge -y g++-13 gcc-13 libstdc++-13-dev - sudo apt-get install -y --allow-downgrades libstdc++-12-dev libstdc++6=12.* libgcc-s1=12.* + # - name: Workaround Clang issue (GNU/Linux) + # if: runner.os == 'linux' && matrix.platform.cc == 'clang' + # run: | + # sudo apt-get purge -y g++-13 gcc-13 libstdc++-13-dev + # sudo apt-get install -y --allow-downgrades libstdc++-12-dev libstdc++6=12.* libgcc-s1=12.* - uses: actions/checkout@v4 - name: Install dependencies (macOS) From 9b11ace04785a9d45301667ad38ab97ca1855a15 Mon Sep 17 00:00:00 2001 From: Balakrishna Avulapati Date: Fri, 26 Dec 2025 19:24:11 +0530 Subject: [PATCH 4/5] update javascriptcoregtk to 4.1 Signed-off-by: Balakrishna Avulapati --- cmake/FindJavaScriptCore.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/FindJavaScriptCore.cmake b/cmake/FindJavaScriptCore.cmake index 5991de9e..99d01127 100644 --- a/cmake/FindJavaScriptCore.cmake +++ b/cmake/FindJavaScriptCore.cmake @@ -8,7 +8,7 @@ if(NOT JavaScriptCore_FOUND) elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") add_library(javascript_core INTERFACE IMPORTED) find_package(PkgConfig REQUIRED) - pkg_check_modules(JAVASCRIPTCORE REQUIRED javascriptcoregtk-4.0) + pkg_check_modules(JAVASCRIPTCORE REQUIRED javascriptcoregtk-4.1) set_property(TARGET javascript_core PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${JAVASCRIPTCORE_INCLUDE_DIRS}) set_property(TARGET javascript_core PROPERTY From d4713b94c5f7d3e8d59905fc04ad6fb338dea971 Mon Sep 17 00:00:00 2001 From: Balakrishna Avulapati Date: Sat, 27 Dec 2025 07:39:20 +0530 Subject: [PATCH 5/5] remove the comments Signed-off-by: Balakrishna Avulapati --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eebf880a..b1a7fe96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,14 +83,6 @@ jobs: run: | sudo apt-get update --yes sudo apt-get install --yes libjavascriptcoregtk-4.1-dev - - # See https://github.com/actions/runner-images/issues/8659 - # - name: Workaround Clang issue (GNU/Linux) - # if: runner.os == 'linux' && matrix.platform.cc == 'clang' - # run: | - # sudo apt-get purge -y g++-13 gcc-13 libstdc++-13-dev - # sudo apt-get install -y --allow-downgrades libstdc++-12-dev libstdc++6=12.* libgcc-s1=12.* - - uses: actions/checkout@v4 - name: Install dependencies (macOS) if: runner.os == 'macos'