1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fe71729..1c8b744 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,6 +16,8 @@ if(NOT EXTERNAL_GUMBO)
add_subdirectory(src/gumbo)
endif()
+include(GNUInstallDirs)
+
set(SOURCE_LITEHTML
src/background.cpp
src/box.cpp
@@ -131,40 +133,43 @@ set(TEST_LITEHTML
set(PROJECT_LIB_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR}.0)
set(PROJECT_SO_VERSION ${PROJECT_MAJOR})
-add_library(${PROJECT_NAME} ${SOURCE_LITEHTML})
+add_library(${PROJECT_NAME}-static ${SOURCE_LITEHTML})
+add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}-static>)
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_LIB_VERSION} SOVERSION ${PROJECT_SO_VERSION})
-set_target_properties(${PROJECT_NAME} PROPERTIES
+set_target_properties(${PROJECT_NAME}-static PROPERTIES
CXX_STANDARD 11
C_STANDARD 99
PUBLIC_HEADER "${HEADER_LITEHTML}"
+ OUTPUT_NAME ${PROJECT_NAME}
+ POSITION_INDEPENDENT_CODE 1
)
# Export litehtml includes.
-target_include_directories(${PROJECT_NAME} PUBLIC
+target_include_directories(${PROJECT_NAME}-static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>)
-target_include_directories(${PROJECT_NAME} PRIVATE include/${PROJECT_NAME})
+target_include_directories(${PROJECT_NAME}-static PRIVATE include/${PROJECT_NAME})
option(LITEHTML_UTF8 "Build litehtml with UTF-8 text conversion functions." OFF)
if (LITEHTML_UTF8)
- target_compile_definitions(${PROJECT_NAME} PUBLIC LITEHTML_UTF8)
+ target_compile_definitions(${PROJECT_NAME}-static PUBLIC LITEHTML_UTF8)
endif()
# Gumbo
target_link_libraries(${PROJECT_NAME} PUBLIC gumbo)
# install and export
-install(TARGETS ${PROJECT_NAME}
+install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}-static
EXPORT litehtmlTargets
- RUNTIME DESTINATION bin COMPONENT libraries
- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT libraries
- LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT libraries
- PUBLIC_HEADER DESTINATION include/litehtml
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/litehtml
)
-install(FILES cmake/litehtmlConfig.cmake DESTINATION lib${LIB_SUFFIX}/cmake/litehtml)
-install(EXPORT litehtmlTargets FILE litehtmlTargets.cmake DESTINATION lib${LIB_SUFFIX}/cmake/litehtml)
+install(FILES cmake/litehtmlConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/litehtml)
+install(EXPORT litehtmlTargets FILE litehtmlTargets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/litehtml)
# Generate master.css.inc
function(make_inc src dst)
diff --git a/cmake/litehtmlConfig.cmake b/cmake/litehtmlConfig.cmake
index 5eedcf4..8cff5ed 100644
--- a/cmake/litehtmlConfig.cmake
+++ b/cmake/litehtmlConfig.cmake
@@ -1,3 +1 @@
-include(CMakeFindDependencyMacro)
-find_dependency(gumbo)
include(${CMAKE_CURRENT_LIST_DIR}/litehtmlTargets.cmake)
|