Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mujs] Missing fixes #29635

Merged
merged 6 commits into from
Feb 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 34 additions & 21 deletions ports/mujs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,48 +1,61 @@
cmake_minimum_required(VERSION 3.9)
project(mujs VERSION 1.3.2)
cmake_minimum_required(VERSION 3.25)
project(mujs C)

set(LINK_LIBRARIES "")
set(PC_LIBS_PRIVATE "")

if(MSVC)
add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
else()
find_library(HAVE_LIBM NAMES m)
if(HAVE_LIBM)
list(APPEND LINK_LIBRARIES m)
string(APPEND PC_LIBS_PRIVATE " -lm")
endif()
endif()

file(GLOB mujs_sources js*.c utf*.c regexp.c)

include_directories(.)

add_library(mujs ${mujs_sources})

target_include_directories(mujs PUBLIC "$<INSTALL_INTERFACE:include>")
target_include_directories(mujs
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
"$<INSTALL_INTERFACE:include>"
)

# Add CMake find_package() integration
set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
set(TARGETS_EXPORT_NAME "unofficial-${PROJECT_NAME}Targets")
set(NAMESPACE "unofficial::mujs::")
target_link_libraries(mujs PRIVATE ${LINK_LIBRARIES})

install(
TARGETS mujs
EXPORT ${TARGETS_EXPORT_NAME}
EXPORT unofficial-mujs-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

export(TARGETS mujs NAMESPACE ${NAMESPACE} FILE mujsTargets.cmake)
install(
EXPORT unofficial-mujs-targets
FILE unofficial-mujs-config.cmake
NAMESPACE unofficial::mujs::
DESTINATION "share/unofficial-mujs"
)

include(CMakePackageConfigHelpers)
write_basic_package_version_file(
mujsConfigVersion.cmake
write_basic_package_version_file(unofficial-mujs-config-version.cmake
VERSION ${PACKAGE_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mujs-config-version.cmake"
DESTINATION "share/unofficial-mujs"
)

configure_package_config_file("mujsConfig.cmake.in" "${PROJECT_CONFIG}" INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}")
install(FILES "${PROJECT_CONFIG}" DESTINATION "${CONFIG_INSTALL_DIR}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mujs.pc" "${CMAKE_CURRENT_BINARY_DIR}/mujs.pc" @ONLY)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/mujs.pc"
DESTINATION "lib/pkgconfig"
)

install(EXPORT ${TARGETS_EXPORT_NAME}
NAMESPACE ${NAMESPACE}
DESTINATION "${CONFIG_INSTALL_DIR}")

if(NOT DISABLE_INSTALL_HEADERS)
install(FILES mujs.h DESTINATION include)
endif()
11 changes: 11 additions & 0 deletions ports/mujs/mujs.pc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: mujs
Description: MuJS embeddable Javascript interpreter
Version: @PACKAGE_VERSION@
Cflags: -I${includedir}
Libs: -L${libdir} -lmujs
Libs.private: @PC_LIBS_PRIVATE@
8 changes: 0 additions & 8 deletions ports/mujs/mujsConfig.cmake.in

This file was deleted.

12 changes: 8 additions & 4 deletions ports/mujs/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
endif()

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
Expand All @@ -9,18 +11,20 @@ vcpkg_from_github(
)

file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/mujsConfig.cmake.in" DESTINATION "${SOURCE_PATH}")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/mujs.pc" DESTINATION "${SOURCE_PATH}")

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
"-DPACKAGE_VERSION=${VERSION}"
OPTIONS_DEBUG
-DDISABLE_INSTALL_HEADERS=ON
-DDISABLE_INSTALL_TOOLS=ON
)

vcpkg_cmake_install()
vcpkg_fixup_pkgconfig()
vcpkg_cmake_config_fixup(PACKAGE_NAME mujs CONFIG_PATH lib/cmake/mujs)
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mujs)
vcpkg_copy_pdbs()

file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
6 changes: 6 additions & 0 deletions ports/mujs/usage
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
mujs can be imported via CMake FindPkgConfig module:

find_package(PkgConfig)
pkg_check_modules(MUJS REQUIRED IMPORTED_TARGET mujs)

target_link_libraries(main PRIVATE PkgConfig::MUJS)
1 change: 1 addition & 0 deletions ports/mujs/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "mujs",
"version": "1.3.2",
"port-version": 1,
"description": "An embeddable Javascript interpreter in C",
"homepage": "https://github.com/ccxvii/mujs",
"license": "ISC",
Expand Down
2 changes: 1 addition & 1 deletion versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -5230,7 +5230,7 @@
},
"mujs": {
"baseline": "1.3.2",
"port-version": 0
"port-version": 1
},
"munit": {
"baseline": "2019-04-06",
Expand Down
5 changes: 5 additions & 0 deletions versions/m-/mujs.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "3a32c06c1b96616c36a255e3a0883b406281be3a",
"version": "1.3.2",
"port-version": 1
},
{
"git-tree": "9c67a4a21c48b6ad43918a526e539cf90d822e1a",
"version": "1.3.2",
Expand Down