cmake_minimum_required(VERSION 3.12) include_directories("./common") include_directories("./gcdkey") file(GLOB SRCS_common "./common/*.c" "./darray.c" "./gserver.c" "./gserverlist.c" "./hashtable.c" "./md5c.c" "./gutil.c" "./gcrypt.c" ) file(GLOB SRCS_gcdkey "./gcdkey/*.c" ) file(GLOB_RECURSE SRCS_ghttp "./ghttp/*.c" ) file(GLOB SRCS_GP "./GP/*.c" ) file(GLOB_RECURSE SRCS_gstats "./gstats/*.c" ) file(GLOB SRCS_natneg "./natneg/*.c" ) file(GLOB SRCS_pinger "./pinger/*.c" ) file(GLOB SRCS_pt "./pt/*.c" ) file(GLOB SRCS_qr2 "./qr2/*.c" ) file(GLOB SRCS_sake "./sake/*.c" ) file(GLOB SRCS_sc "./sc/*.c" ) file(GLOB SRCS_serverbrowsing "./serverbrowsing/*.c" ) file(GLOB_RECURSE SRCS_webservices "./webservices/*.c" ) add_library(gcd_common STATIC ${SRCS_common}) add_library(gcd_key STATIC ${SRCS_gcdkey}) #add_library(gcd_gp STATIC ${SRCS_GP}) #add_library(gcd_gstats STATIC ${SRCS_gstats}) add_library(gcd_natneg STATIC ${SRCS_natneg}) #add_library(gcd_pinger STATIC ${SRCS_pinger}) #add_library(gcd_pt STATIC ${SRCS_pt}) add_library(gcd_qr2 STATIC ${SRCS_qr2}) #add_library(gcd_sake STATIC ${SRCS_sake}) #add_library(gcd_sc STATIC ${SRCS_sc}) #add_library(gcd_serverbrowsing STATIC ${SRCS_serverbrowsing}) #add_library(gcd_webservices STATIC ${SRCS_webservices}) add_library(gcd INTERFACE) set_property(TARGET gcd_common gcd_key PROPERTY POSITION_INDEPENDENT_CODE ON) if(UNIX) add_definitions(-D_LINUX=1) endif(UNIX) set(DEPENDENT_LIBS gcd_key # gcd_gp # gcd_gstats gcd_natneg # gcd_pinger # gcd_pt gcd_qr2 # gcd_sake # gcd_sc # gcd_serverbrowsing # gcd_webservices ) target_link_libraries(gcd INTERFACE ${DEPENDENT_LIBS}) foreach(LIB ${DEPENDENT_LIBS}) target_link_libraries(${LIB} PUBLIC gcd_common) endforeach() target_link_libraries(gcd_key PRIVATE gcd_qr2) target_link_libraries(gcd_qr2 PRIVATE gcd_natneg)