Browse Source

DLL创建依赖VS

VSbuild_required
郑敬润 9 months ago
parent
commit
270bfd629e
  1. 38
      CMakeLists.txt

38
CMakeLists.txt

@ -30,28 +30,15 @@ configure_file(config.h.in config.h)
#------------REQUIRED_5.1.1 find_package ------------# #------------REQUIRED_5.1.1 find_package ------------#
# CMAKE_PREFIX_PATH find_package config # CMAKE_PREFIX_PATH find_package config
if (APPLE) list(PREPEND CMAKE_PREFIX_PATH D:/SOURCE/Dependencies) # Windows
list(PREPEND CMAKE_PREFIX_PATH /Users/yony/CODE/Dependencies) # MacOS set(CMAKE_TOOLCHAIN_FILE "D:\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake") # vcpkg
# Settign pkg-config for tinyxml usage include(${CMAKE_TOOLCHAIN_FILE})
set(ENV{PKG_CONFIG_PATH} /opt/homebrew/lib/pkgconfig/)
find_package(PkgConfig)
pkg_search_module(TINYXML REQUIRED tinyxml)
message(STATUS "=== TINYXML_LIBRARIES: ${TINYXML_LIBRARIES}")
message(STATUS "=== TINYXML_INCLUDE_DIRS: ${TINYXML_INCLUDE_DIRS}")
elseif (WIN32)
list(PREPEND CMAKE_PREFIX_PATH D:/SOURCE/Dependencies) # Windows
set(CMAKE_TOOLCHAIN_FILE "D:\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake") # vcpkg
include(${CMAKE_TOOLCHAIN_FILE})
find_package(tinyxml CONFIG REQUIRED)
elseif (UNIX)
list(PREPEND CMAKE_PREFIX_PATH /home/yony/PROJECTS/Dependencies) # Linux
find_package(tinyxml CONFIG REQUIRED)
endif()
# find_package # find_package
message(STATUS "CMAKE_SYSTEM_PREFIX_PATH: ${CMAKE_SYSTEM_PREFIX_PATH}") message(STATUS "CMAKE_SYSTEM_PREFIX_PATH: ${CMAKE_SYSTEM_PREFIX_PATH}")
message(STATUS "Self added CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") message(STATUS "Self added CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
# CONFIG <deps_dir>/share/<lib_name>/cmake/xxxConfig.cmake # CONFIG <deps_dir>/share/<lib_name>/cmake/xxxConfig.cmake
# find_package(tinyxml CONFIG REQUIRED) find_package(tinyxml CONFIG REQUIRED)
#------------REQUIRED_5.1.2 include .cmakeContentFetch------------# #------------REQUIRED_5.1.2 include .cmakeContentFetch------------#
# cmakeCMAKE_MODULE_PATH include 使 # cmakeCMAKE_MODULE_PATH include 使
@ -82,18 +69,11 @@ add_executable(
# CMakeLists.txt # CMakeLists.txt
# target_include_directories <lib_name>/include <LIB_NAME>_INCLUDE_DIRS # target_include_directories <lib_name>/include <LIB_NAME>_INCLUDE_DIRS
if (WIN32) target_link_libraries(
target_link_libraries(
${PROJECT_NAME} PUBLIC ${PROJECT_NAME} PUBLIC
unofficial-tinyxml::unofficial-tinyxml unofficial-tinyxml::unofficial-tinyxml
${CMAKE_SOURCE_DIR}/lib/VSbuild/x64/Debug/WireRouting_DLL.lib ${CMAKE_SOURCE_DIR}/lib/VSbuild/x64/Debug/WireRouting_DLL.lib
) )
else()
target_link_libraries(
${PROJECT_NAME} PUBLIC
/opt/homebrew/Cellar/tinyxml/2.6.2/lib/libtinyxml.dylib
)
endif()
#------------OPTIONAL_1.2 config.h------------# #------------OPTIONAL_1.2 config.h------------#
@ -106,8 +86,8 @@ target_include_directories(
${PROJECT_BINARY_DIR} # config.h.in build ${PROJECT_BINARY_DIR} # config.h.in build
${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/lib/include ${CMAKE_SOURCE_DIR}/lib/include
${TINYXML_INCLUDE_DIR} # tinyxml ${TINYXML_INCLUDE_DIR} # vcpkgtinyxml
${TINYXML_INCLUDE_DIRS} # pkg-config tinyxml dir ${TINYXML_INCLUDE_DIRS} # pkg-config tinyxml dirMacOS
) )
# TODO: MSVC msvc_19.29_cxx11_32_md_debugdll/lib # TODO: MSVC msvc_19.29_cxx11_32_md_debugdll/lib
Loading…
Cancel
Save