summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberto Garcia Illera <agarciaillera@gmail.com>2022-10-25 11:58:19 +1100
committerAlberto Garcia Illera <agarciaillera@gmail.com>2022-10-25 11:58:19 +1100
commit36869b3f2de096b25dbd57298101add82f91ff5b (patch)
treeff773cdb02900174b81e4338fbb7ffbbac12be4e
parentb45477dfc47794a5897cc807f88ada7dd99305fc (diff)
downloadlibproxy-git-36869b3f2de096b25dbd57298101add82f91ff5b.tar.gz
Enable static builds for libproxy
-rw-r--r--CMakeLists.txt10
-rw-r--r--libproxy/cmake/libproxy.cmk9
-rw-r--r--libproxy/cmake/modules/pacrunner_duktape.cmk3
-rw-r--r--utils/CMakeLists.txt13
4 files changed, 31 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f51e38..08f9170 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
### Required
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 3.15)
project(libproxy)
@@ -31,6 +31,14 @@ include(cmake/ctest.cmk)
include(cmake/paths.cmk)
option(WITH_WEBKIT3 "Build against gtk-3 version of webkitgtk" OFF)
+option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
+
+if(WIN32)
+ option(MSVC_STATIC "Use statically-linked runtime library" ON)
+ if(MSVC_STATIC)
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
+ endif()
+endif()
### Subdirectories
diff --git a/libproxy/cmake/libproxy.cmk b/libproxy/cmake/libproxy.cmk
index de68e5c..fce4f31 100644
--- a/libproxy/cmake/libproxy.cmk
+++ b/libproxy/cmake/libproxy.cmk
@@ -1,4 +1,11 @@
-add_library(libproxy SHARED extension_config.cpp extension_pacrunner.cpp extension_wpad.cpp proxy.cpp url.cpp ${LIBPROXY_SOURCES})
+if(BUILD_SHARED_LIBS)
+ add_library(libproxy SHARED extension_config.cpp extension_pacrunner.cpp extension_wpad.cpp proxy.cpp url.cpp ${LIBPROXY_SOURCES})
+else ()
+ add_library(libproxy STATIC extension_config.cpp extension_pacrunner.cpp extension_wpad.cpp proxy.cpp url.cpp ${LIBPROXY_SOURCES})
+endif()
+
+message(INFO ${LIBPROXY_LIBRARIES})
+
if(WIN32)
target_link_libraries(libproxy modman;ws2_32;${LIBPROXY_LIBRARIES})
else()
diff --git a/libproxy/cmake/modules/pacrunner_duktape.cmk b/libproxy/cmake/modules/pacrunner_duktape.cmk
index 0f2c323..79e2058 100644
--- a/libproxy/cmake/modules/pacrunner_duktape.cmk
+++ b/libproxy/cmake/modules/pacrunner_duktape.cmk
@@ -3,11 +3,12 @@ option(WITH_DUKTAPE "Search for Duktape package" ON)
if(WIN32)
set(DUKTAPE_FOUND 0)
if(WITH_DUKTAPE)
- find_package(duktape QUIET)
+ find_package(Duktape QUIET)
if(DUKTAPE_FOUND)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${DUKTAPE_INCLUDE_DIRS})
link_libraries(${DUKTAPE_LIBRARY})
set(DUKTAPE_FOUND 1) # find_package sets DUKTAPE_FOUND to True and not 0
+ set(LIBPROXY_LIBRARIES ${LIBPROXY_LIBRARIES} ${DUKTAPE_LIBRARY} PARENT_SCOPE)
endif()
endif()
else()
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 52010c6..de5cb81 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -1,5 +1,16 @@
include_directories("../libproxy")
add_executable(proxy proxy.c)
-target_link_libraries(proxy libproxy)
+
+if(BUILD_SHARED_LIBS)
+ target_link_libraries(proxy libproxy)
+else ()
+ if(WIN32)
+ target_link_libraries(proxy libproxy;modman;ws2_32;${LIBPROXY_LIBRARIES})
+ else()
+ target_link_libraries(proxy libproxy;modman;m;pthread;${CMAKE_DL_LIBS};${LIBPROXY_LIBRARIES})
+ endif()
+endif()
+
+
install(TARGETS proxy RUNTIME DESTINATION ${BIN_INSTALL_DIR})