Changeset: 8aa7892cc7f5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8aa7892cc7f5
Modified Files:
        clients/mapilib/CMakeLists.txt
        common/stream/CMakeLists.txt
        gdk/CMakeLists.txt
        geom/monetdb5/CMakeLists.txt
        monetdb5/extras/mal_optimizer_template/CMakeLists.txt
        monetdb5/extras/rapi/CMakeLists.txt
        monetdb5/tools/CMakeLists.txt
        sql/backends/monet5/CMakeLists.txt
        sql/backends/monet5/UDF/capi/CMakeLists.txt
        sql/backends/monet5/UDF/pyapi/CMakeLists.txt
        sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
        sql/backends/monet5/UDF/udf/CMakeLists.txt
        sql/backends/monet5/generator/CMakeLists.txt
        sql/backends/monet5/vaults/bam/CMakeLists.txt
        sql/backends/monet5/vaults/fits/CMakeLists.txt
        sql/backends/monet5/vaults/lidar/CMakeLists.txt
        sql/backends/monet5/vaults/netcdf/CMakeLists.txt
        sql/backends/monet5/vaults/shp/CMakeLists.txt
Branch: cmake-fun
Log Message:

I hate cmake generator expressions.


diffs (truncated from 375 to 300 lines):

diff --git a/clients/mapilib/CMakeLists.txt b/clients/mapilib/CMakeLists.txt
--- a/clients/mapilib/CMakeLists.txt
+++ b/clients/mapilib/CMakeLists.txt
@@ -8,9 +8,13 @@
 
 include_directories(../../common/stream ../../common/utils 
${CRYPTO_INCLUDE_DIR})
 
+set(MAPI_LINK_LIBRARIES moptions mcrypt)
+if(WIN32)
+       list(APPEND MAPI_LINK_LIBRARIES stream ${SOCKET_LIBRARIES} 
${CRYPTO_LIBRARIES})
+endif()
+
 add_library(mapi SHARED mapi.c $<$<PLATFORM_ID:Windows>:mapi.rc>)
-target_link_libraries(mapi PRIVATE moptions mcrypt 
$<$<PLATFORM_ID:Windows>:stream>
-                                         
$<$<PLATFORM_ID:Windows>:${SOCKET_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${CRYPTO_LIBRARIES}>)
+target_link_libraries(mapi PRIVATE ${MAPI_LINK_LIBRARIES})
 set_target_properties(mapi PROPERTIES VERSION ${MAPI_VERSION} SOVERSION 
${MAPI_VERSION_MAJOR})
 target_compile_definitions(mapi PRIVATE LIBMAPI)
 
diff --git a/common/stream/CMakeLists.txt b/common/stream/CMakeLists.txt
--- a/common/stream/CMakeLists.txt
+++ b/common/stream/CMakeLists.txt
@@ -9,12 +9,14 @@
 include_directories(../utils ${ZLIB_INCLUDE_DIR} ${BZIP2_INCLUDE_DIR} 
${SNAPPY_INCLUDE_DIR} ${LZ4_INCLUDE_DIR}
                                        ${LIBLZMA_INCLUDE_DIR} 
${CURL_INCLUDE_DIR} ${ICONV_INCLUDE_DIR})
 
+set(STREAM_LINK_LIBRARIES )
+if(WIN32)
+       list(APPEND STREAM_LINK_LIBRARIES ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} 
${SNAPPY_LIBRARIES} ${LZ4_LIBRARIES}
+                ${LIBLZMA_LIBRARIES} ${CURL_LIBRARIES} ${ICONV_LIBRARIES} 
${SOCKET_LIBRARIES})
+endif()
+
 add_library(stream SHARED stream.c stream.h stream_socket.h)
-target_link_libraries(stream PRIVATE 
$<$<PLATFORM_ID:Windows>:${ZLIB_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${BZIP2_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${SNAPPY_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${LZ4_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${LIBLZMA_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${CURL_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${ICONV_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${SOCKET_LIBRARIES}>)
+target_link_libraries(stream PRIVATE ${STREAM_LINK_LIBRARIES})
 set_target_properties(stream PROPERTIES VERSION ${STREAM_VERSION} SOVERSION 
${STREAM_VERSION_MAJOR})
 target_compile_definitions(stream PRIVATE LIBSTREAM)
 
diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt
--- a/gdk/CMakeLists.txt
+++ b/gdk/CMakeLists.txt
@@ -8,6 +8,12 @@
 
 include_directories(../common/options ../common/stream ../common/utils 
${VALGRIND_INCLUDE_DIR})
 
+set(GDK_LINK_LIBRARIES moptions mutils)
+if(WIN32)
+       list(APPEND GDK_LINK_LIBRARIES stream ${MATH_LIBRARIES} 
${SOCKET_LIBRARIES} ${MALLOC_LIBRARIES} ${PTHREAD_LIBRARIES}
+                ${DL_LIBRARIES} ${PSAPI_LIBRARIES})
+endif()
+
 add_library(gdk SHARED
                        gdk_select.c
                        gdk_calc.c gdk_calc.h gdk_calc_compare.h 
gdk_calc_private.h
@@ -33,10 +39,7 @@ add_library(gdk SHARED
                        gdk_firstn.c
                        gdk_analytic_bounds.c
                        gdk_analytic_func.c gdk_analytic.h 
$<$<PLATFORM_ID:Windows>:libbat.rc>)
-target_link_libraries(gdk PRIVATE moptions mutils 
$<$<PLATFORM_ID:Windows>:stream>
-                                         
$<$<PLATFORM_ID:Windows>:${MATH_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${SOCKET_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${MALLOC_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${PTHREAD_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${DL_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${PSAPI_LIBRARIES}>)
+target_link_libraries(gdk PRIVATE ${GDK_LINK_LIBRARIES})
 set_target_properties(gdk PROPERTIES VERSION ${GDK_VERSION} SOVERSION 
${GDK_VERSION_MAJOR} OUTPUT_NAME bat)
 target_compile_definitions(gdk PRIVATE LIBGDK)
 
diff --git a/geom/monetdb5/CMakeLists.txt b/geom/monetdb5/CMakeLists.txt
--- a/geom/monetdb5/CMakeLists.txt
+++ b/geom/monetdb5/CMakeLists.txt
@@ -9,9 +9,13 @@
 include_directories(../lib ../../gdk ../../common/stream ../../common/utils 
../../monetdb5/mal ${GEOS_INCLUDE_DIR}
                                        ${PROJ_INCLUDE_DIR})
 
+set(GEOM_LINK_LIBRARIES ${GEOS_LIBRARIES} ${PROJ_LIBRARIES})
+if(WIN32)
+       list(APPEND GEOM_LINK_LIBRARIES monetdb5 gdk stream)
+endif()
+
 add_library(geom MODULE geom.h geom.c geomBulk.c geom_upgrade.c 
../lib/libgeom.c ../lib/libgeom.h)
-target_link_libraries(geom PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk>
-                                         $<$<PLATFORM_ID:Windows>:stream> 
${GEOS_LIBRARIES} ${PROJ_LIBRARIES})
+target_link_libraries(geom PRIVATE ${GEOM_LINK_LIBRARIES})
 set_target_properties(geom PROPERTIES OUTPUT_NAME _geom)
 target_compile_definitions(geom PRIVATE LIBGEOM)
 
diff --git a/monetdb5/extras/mal_optimizer_template/CMakeLists.txt 
b/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
--- a/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
+++ b/monetdb5/extras/mal_optimizer_template/CMakeLists.txt
@@ -8,8 +8,13 @@
 
 include_directories(../../optimizer ../../mal ../../../gdk 
../../../common/stream ../../../common/utils)
 
+set(OPT_SQL_APPEND_LINK_LIBRARIES )
+if(WIN32)
+       list(APPEND OPT_SQL_APPEND_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(opt_sql_append MODULE opt_sql_append.c opt_sql_append.h)
-target_link_libraries(opt_sql_append PRIVATE 
$<$<PLATFORM_ID:Windows>:monetdb5> $<$<PLATFORM_ID:Windows>:gdk>)
+target_link_libraries(opt_sql_append PRIVATE ${OPT_SQL_APPEND_LINK_LIBRARIES})
 set_target_properties(opt_sql_append PROPERTIES OUTPUT_NAME _opt_sql_append)
 target_compile_definitions(opt_sql_append PRIVATE LIBOPT_SQL_APPEND)
 
diff --git a/monetdb5/extras/rapi/CMakeLists.txt 
b/monetdb5/extras/rapi/CMakeLists.txt
--- a/monetdb5/extras/rapi/CMakeLists.txt
+++ b/monetdb5/extras/rapi/CMakeLists.txt
@@ -10,8 +10,13 @@ include_directories(../../../common/stre
                                        ../../modules/atoms ../../modules/mal 
../../../sql/common ../../../sql/include
                                        ../../../sql/server 
../../../sql/storage ../../../sql/backends/monet5 ${R_INCLUDE_DIR})
 
+set(RAPI_LINK_LIBRARIES ${R_LIBRARIES})
+if(WIN32)
+       list(APPEND RAPI_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(rapi MODULE rapi.c rapi.h converters.c.h)
-target_link_libraries(rapi PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk> ${R_LIBRARIES})
+target_link_libraries(rapi PRIVATE ${RAPI_LINK_LIBRARIES})
 set_target_properties(rapi PROPERTIES OUTPUT_NAME _rapi)
 target_compile_definitions(rapi PRIVATE LIBRAPI)
 if(NOT MSVC)
diff --git a/monetdb5/tools/CMakeLists.txt b/monetdb5/tools/CMakeLists.txt
--- a/monetdb5/tools/CMakeLists.txt
+++ b/monetdb5/tools/CMakeLists.txt
@@ -17,15 +17,18 @@ file(GLOB MODULES_SRC "../modules/mal/*.
 file(GLOB OPTIMIZER_SRC "../optimizer/*.h" "../optimizer/*.c")
 file(GLOB SCHEDULER_SRC "../scheduler/*.h" "../scheduler/*.c")
 
+set(MONETDB5_LINK_LIBRARIES mutils mcrypt msabaoth)
+if(WIN32)
+       list(APPEND MONETDB5_LINK_LIBRARIES ${UUID_LIBRARIES} ${MATH_LIBRARIES} 
${SOCKET_LIBRARIES} ${MALLOC_LIBRARIES}
+                ${PTHREAD_LIBRARIES} ${DL_LIBRARIES} ${CRYPTO_LIBRARIES} 
${PCRE_LIBRARIES} ${LIBXML2_LIBRARIES} gdk stream)
+       if(HAVE_MAPI)
+               list(APPEND MONETDB5_LINK_LIBRARIES mapi)
+       endif()
+endif()
+
 add_library(monetdb5 SHARED ${MAL_SRC} ${ATOMS_SRC} ${KERNEL_SRC} 
${MODULES_SRC} ${OPTIMIZER_SRC} ${SCHEDULER_SRC}
                        $<$<PLATFORM_ID:Windows>:libmonetdb5.rc>)
-target_link_libraries(monetdb5 PRIVATE mutils mcrypt msabaoth 
$<$<PLATFORM_ID:Windows>:${UUID_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${MATH_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${SOCKET_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${MALLOC_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${PTHREAD_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${DL_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${CRYPTO_LIBRARIES}>
-                                         
$<$<PLATFORM_ID:Windows>:${PCRE_LIBRARIES}> 
$<$<PLATFORM_ID:Windows>:${LIBXML2_LIBRARIES}>
-                                         $<$<PLATFORM_ID:Windows>:gdk> 
$<$<PLATFORM_ID:Windows>:stream>
-                                         
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:HAVE_MAPI>>:mapi>)
+target_link_libraries(monetdb5 PRIVATE ${MONETDB5_LINK_LIBRARIES})
 set_target_properties(monetdb5 PROPERTIES VERSION ${MONETDB5_VERSION} 
SOVERSION ${MONETDB5_VERSION_MAJOR})
 target_compile_definitions(monetdb5 PRIVATE LIBMAL LIBATOMS LIBKERNEL 
LIBOPTIMIZER LIBSCHEDULER LIBMONETDB5)
 
diff --git a/sql/backends/monet5/CMakeLists.txt 
b/sql/backends/monet5/CMakeLists.txt
--- a/sql/backends/monet5/CMakeLists.txt
+++ b/sql/backends/monet5/CMakeLists.txt
@@ -17,6 +17,11 @@ include_directories(../../include ../../
                                        ../../../monetdb5/optimizer 
../../../monetdb5/scheduler ../../../monetdb5/extras/rapi 
                                        ../../../common/stream 
../../../common/utils ../../../gdk)
 
+set(SQL_LINK_LIBRARIES sqlserver store batstore sqlcommon)
+if(WIN32)
+       list(APPEND SQL_LINK_LIBRARIES mapi monetdb5 gdk stream 
${CRYPTO_LIBRARIES})
+endif()
+
 add_library(sql MODULE
                        sql.c sql.h
                        mal_backend.c mal_backend.h
@@ -43,9 +48,7 @@ add_library(sql MODULE
                        wlr.c wlr.h
                        sql_datetrunc.c
                        sql_rank.c sql_rank.h)
-target_link_libraries(sql PRIVATE sqlserver store batstore sqlcommon 
$<$<PLATFORM_ID:Windows>:mapi>
-                                         $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk> $<$<PLATFORM_ID:Windows>:stream>
-                                         
$<$<PLATFORM_ID:Windows>:${CRYPTO_LIBRARIES}>)
+target_link_libraries(sql PRIVATE ${SQL_LINK_LIBRARIES})
 set_target_properties(sql PROPERTIES OUTPUT_NAME _sql)
 target_compile_definitions(sql PRIVATE LIBSQL LIBSQLSERVER LIBSQLCOMMON 
LIBBATSTORE LIBSTORE)
 
diff --git a/sql/backends/monet5/UDF/capi/CMakeLists.txt 
b/sql/backends/monet5/UDF/capi/CMakeLists.txt
--- a/sql/backends/monet5/UDF/capi/CMakeLists.txt
+++ b/sql/backends/monet5/UDF/capi/CMakeLists.txt
@@ -12,8 +12,13 @@ include_directories(../../../../../clien
                                        ../../../../../sql/include 
../../../../../sql/server ../../../../../sql/storage
                                        ${CMAKE_CURRENT_BINARY_DIR})
 
+set(CAPI_LINK_LIBRARIES )
+if(WIN32)
+       list(APPEND CAPI_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(capi MODULE capi.c capi.h cheader.h 
${CMAKE_CURRENT_BINARY_DIR}/cheader.text.h)
-target_link_libraries(capi PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk>)
+target_link_libraries(capi PRIVATE ${CAPI_LINK_LIBRARIES})
 set_target_properties(capi PROPERTIES OUTPUT_NAME _capi)
 target_compile_definitions(capi PRIVATE LIBCUDF)
 
diff --git a/sql/backends/monet5/UDF/pyapi/CMakeLists.txt 
b/sql/backends/monet5/UDF/pyapi/CMakeLists.txt
--- a/sql/backends/monet5/UDF/pyapi/CMakeLists.txt
+++ b/sql/backends/monet5/UDF/pyapi/CMakeLists.txt
@@ -11,11 +11,16 @@ include_directories(../../../../../clien
                                        ../../../../../monetdb5/mal 
../../../../../sql/backends/monet5 ../../../../../sql/common
                                        ../../../../../sql/include 
../../../../../sql/server ../../../../../sql/storage ${PY2_INCLUDE_DIR})
 
+set(PYAPI_LINK_LIBRARIES ${PY2_LIBRARIES})
+if(WIN32)
+       list(APPEND PYAPI_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(pyapi MODULE
                        pyapi.c pyapi.h unicode.c unicode.h pytypes.c pytypes.h 
type_conversion.c type_conversion.h formatinput.c
                        formatinput.h connection.c connection.h undef.h 
pyloader.c emit.h emit.c conversion.c conversion.h
                        convert_loops.h pyheader.h)
-target_link_libraries(pyapi PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk> ${PY2_LIBRARIES})
+target_link_libraries(pyapi PRIVATE ${PYAPI_LINK_LIBRARIES})
 set_target_properties(pyapi PROPERTIES OUTPUT_NAME _pyapi)
 target_compile_definitions(pyapi PRIVATE LIBPYAPI LIBPYAPI3)
 
diff --git a/sql/backends/monet5/UDF/pyapi3/CMakeLists.txt 
b/sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
--- a/sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
+++ b/sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
@@ -12,11 +12,15 @@ include_directories(../../../../../clien
                                        ../../../../../sql/include 
../../../../../sql/server ../../../../../sql/storage ../pyapi
                                        ${PY3_INCLUDE_DIR})
 
-# TODO check XDEPS
+set(PYAPI3_LINK_LIBRARIES ${PY3_LIBRARIES})
+if(WIN32)
+       list(APPEND PYAPI3_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(pyapi3 MODULE
                        pyapi3.c unicode3.c pytypes3.c type_conversion3.c 
formatinput3.c connection3.c pyloader3.c emit3.c
                        conversion3.c)
-target_link_libraries(pyapi3 PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk> ${PY3_LIBRARIES})
+target_link_libraries(pyapi3 PRIVATE ${PYAPI3_LINK_LIBRARIES})
 set_target_properties(pyapi3 PROPERTIES OUTPUT_NAME _pyapi3)
 target_compile_definitions(pyapi3 PRIVATE LIBPYAPI LIBPYAPI3)
 
diff --git a/sql/backends/monet5/UDF/udf/CMakeLists.txt 
b/sql/backends/monet5/UDF/udf/CMakeLists.txt
--- a/sql/backends/monet5/UDF/udf/CMakeLists.txt
+++ b/sql/backends/monet5/UDF/udf/CMakeLists.txt
@@ -11,8 +11,13 @@ include_directories(../.. ../../../../in
                                        ../../../../../monetdb5/mal 
../../../../../monetdb5/modules/mal ../../../../../monetdb5/optimizer
                                        ../../../../../common/utils 
../../../../../common/stream ../../../../../gdk)
 
+set(UDF_LINK_LIBRARIES )
+if(WIN32)
+       list(APPEND UDF_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(udf MODULE udf.c udf.h udf_impl.h)
-target_link_libraries(udf PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk>)
+target_link_libraries(udf PRIVATE ${UDF_LINK_LIBRARIES})
 set_target_properties(udf PROPERTIES OUTPUT_NAME _udf)
 target_compile_definitions(udf PRIVATE LIBUDF)
 
diff --git a/sql/backends/monet5/generator/CMakeLists.txt 
b/sql/backends/monet5/generator/CMakeLists.txt
--- a/sql/backends/monet5/generator/CMakeLists.txt
+++ b/sql/backends/monet5/generator/CMakeLists.txt
@@ -11,8 +11,13 @@ include_directories(../../../include ../
                                        ../../../../monetdb5/optimizer 
../../../../monetdb5/scheduler ../../../../common/stream
                                        ../../../../common/utils 
../../../../gdk)
 
+set(GENERATOR_LINK_LIBRARIES )
+if(WIN32)
+       list(APPEND GENERATOR_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 add_library(generator MODULE generator.c generator.h)
-target_link_libraries(generator PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk>)
+target_link_libraries(generator PRIVATE ${GENERATOR_LINK_LIBRARIES})
 set_target_properties(generator PROPERTIES OUTPUT_NAME _generator)
 target_compile_definitions(generator PRIVATE LIBGENERATOR)
 
diff --git a/sql/backends/monet5/vaults/bam/CMakeLists.txt 
b/sql/backends/monet5/vaults/bam/CMakeLists.txt
--- a/sql/backends/monet5/vaults/bam/CMakeLists.txt
+++ b/sql/backends/monet5/vaults/bam/CMakeLists.txt
@@ -12,6 +12,11 @@ include_directories(.. ../.. ../../../..
                                        ../../../../../common/stream 
../../../../../common/utils ../../../../../gdk
                                        ../../../../../tools/merovingian 
../../../../../tools/merovingian/daemon ${SAMTOOLS_INCLUDE_DIR})
 
+set(BAM_LINK_LIBRARIES ${SAMTOOLS_LIBRARIES})
+if(WIN32)
+       list(APPEND BAM_LINK_LIBRARIES monetdb5 gdk)
+endif()
+
 # the bam library is also called bam, so cmake gets confused. Give another name
 add_library(bamm MODULE
                        bam_loader.c bam_loader.h
@@ -21,8 +26,7 @@ add_library(bamm MODULE
                        bam_lib.c bam_lib.h
                        bam_export.c bam_export.h
                        mykstring.h)
-target_link_libraries(bamm PRIVATE $<$<PLATFORM_ID:Windows>:monetdb5> 
$<$<PLATFORM_ID:Windows>:gdk>
-                                         ${SAMTOOLS_LIBRARIES})
+target_link_libraries(bamm PRIVATE ${BAM_LINK_LIBRARIES})
 set_target_properties(bamm PROPERTIES OUTPUT_NAME _bam)
 target_compile_definitions(bamm PRIVATE LIBBAM)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to