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