--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,6 +157,19 @@ SET(WSLAY_LIBRARIES -lwslay) ENDIF (NOT WSLAY_FOUND) +IF (PKG_CONFIG_FOUND) + PKG_CHECK_MODULES(ONIG onigmo) + IF (NOT ONIG_FOUND) + PKG_CHECK_MODULES(ONIG oniguruma) + ENDIF (NOT ONIG_FOUND) + IF (ONIG_FOUND) + LINK_DIRECTORIES(${ONIG_LIBRARY_DIRS}) + ENDIF (ONIG_FOUND) +ENDIF (PKG_CONFIG_FOUND) +IF (NOT ONIG_FOUND AND WITH_MRUBY) + MESSAGE(FATAL_ERROR "Onigmo/Oniguruma not found") +ENDIF (NOT ONIG_FOUND AND WITH_MRUBY) + IF (ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS}) LINK_DIRECTORIES(${ZLIB_LIBRARY_DIRS}) @@ -460,7 +473,7 @@ ELSE () SET(MRUBY_TOOLCHAIN "gcc") ENDIF () - ADD_CUSTOM_TARGET(mruby MRUBY_TOOLCHAIN=${MRUBY_TOOLCHAIN} MRUBY_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/misc/mruby_config.rb MRUBY_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}/mruby ruby minirake + ADD_CUSTOM_TARGET(mruby MRUBY_TOOLCHAIN=${MRUBY_TOOLCHAIN} MRUBY_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/misc/mruby_config.rb MRUBY_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}/mruby ruby minirake -v WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/deps/mruby) LIST(APPEND STANDALONE_SOURCE_FILES lib/handler/mruby.c @@ -491,7 +504,7 @@ # note: the paths need to be determined before libmruby.flags.mak is generated TARGET_LINK_LIBRARIES(h2o "${CMAKE_CURRENT_BINARY_DIR}/mruby/host/lib/libmruby.a" - "${CMAKE_CURRENT_BINARY_DIR}/mruby/host/mrbgems/mruby-onig-regexp/onigmo-6.1.1/.libs/libonigmo.a" + ${ONIG_LIBRARIES} "m") ADD_DEPENDENCIES(h2o mruby) ENDIF (WITH_MRUBY) --- a/misc/mruby_config.rb +++ b/misc/mruby_config.rb @@ -15,13 +15,7 @@ # use mrbgems Dir.glob("../mruby-*/mrbgem.rake") do |x| g = File.basename File.dirname x - if g == 'mruby-onig-regexp' - conf.gem "../deps/#{g}" do |c| - c.bundle_onigmo - end - else - conf.gem "../deps/#{g}" - end + conf.gem "../deps/#{g}" end # include all the core GEMs