76 lines
2.1 KiB
CMake
76 lines
2.1 KiB
CMake
|
cmake_minimum_required(VERSION 3.8)
|
||
|
project(plist C CXX)
|
||
|
|
||
|
file(GLOB_RECURSE PLIST_HEADER include/plist/*.h)
|
||
|
|
||
|
set(PLIST_SRC
|
||
|
src/base64.c
|
||
|
src/bytearray.c
|
||
|
src/hashtable.c
|
||
|
src/ptrarray.c
|
||
|
src/time64.c
|
||
|
src/xplist.c
|
||
|
src/bplist.c
|
||
|
src/plist.c
|
||
|
)
|
||
|
|
||
|
set(PLISTPP_SRC
|
||
|
src/Node.cpp
|
||
|
src/Structure.cpp
|
||
|
src/Array.cpp
|
||
|
src/Boolean.cpp
|
||
|
src/Data.cpp
|
||
|
src/Date.cpp
|
||
|
src/Dictionary.cpp
|
||
|
src/Integer.cpp
|
||
|
src/Key.cpp
|
||
|
src/Real.cpp
|
||
|
src/String.cpp
|
||
|
src/Uid.cpp
|
||
|
)
|
||
|
|
||
|
file(GLOB_RECURSE LIBCNARY_HEADER libcnary/include/*.h)
|
||
|
file(GLOB_RECURSE LIBCNARY_SRC libcnary/*c)
|
||
|
|
||
|
add_library(plist ${PLIST_SRC} ${PLIST_HEADER} ${LIBCNARY_SRC} ${LIBCNARY_HEADER})
|
||
|
target_include_directories(plist PRIVATE src include libcnary/include)
|
||
|
set_target_properties(plist PROPERTIES OUTPUT_NAME plist-2.0)
|
||
|
|
||
|
add_library(plist++ STATIC ${PLISTPP_SRC} ${PLIST_HEADER} ${LIBCNARY_SRC} ${LIBCNARY_HEADER})
|
||
|
set_target_properties(plist++ PROPERTIES OUTPUT_NAME plist++-2.0)
|
||
|
target_include_directories(plist++ PRIVATE src include libcnary/include)
|
||
|
|
||
|
if(WIN32 AND BUILD_SHARED_LIBS)
|
||
|
target_compile_options(plist PRIVATE -W3 -WX- -sdl-)
|
||
|
target_compile_definitions(plist PRIVATE -DLIBPLIST_EXPORTS)
|
||
|
target_compile_options(plist++ PRIVATE -W3 -WX- -sdl-)
|
||
|
target_compile_definitions(plist++ PRIVATE -DLIBPLIST_EXPORTS)
|
||
|
endif()
|
||
|
target_link_libraries(plist++ PRIVATE plist)
|
||
|
|
||
|
install(
|
||
|
TARGETS plist plist++
|
||
|
RUNTIME DESTINATION bin
|
||
|
ARCHIVE DESTINATION lib
|
||
|
LIBRARY DESTINATION lib
|
||
|
)
|
||
|
|
||
|
set(PACKAGE_NAME libplist)
|
||
|
set(PACKAGE_VERSION 2.0)
|
||
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||
|
set(exec_prefix \${prefix})
|
||
|
set(libdir \${prefix}/lib)
|
||
|
set(includedir \${prefix}/../include)
|
||
|
foreach (PLIST_PKGCONFIG libplist-2.0.pc libplist++-2.0.pc)
|
||
|
configure_file(
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/${PLIST_PKGCONFIG}.in
|
||
|
${CMAKE_CURRENT_BINARY_DIR}/${PLIST_PKGCONFIG}
|
||
|
@ONLY
|
||
|
)
|
||
|
install(
|
||
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLIST_PKGCONFIG}
|
||
|
DESTINATION lib/pkgconfig)
|
||
|
endforeach()
|
||
|
|
||
|
install(FILES ${PLIST_HEADER} DESTINATION include/plist)
|