diff options
-rw-r--r-- | examples/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/libical/CMakeLists.txt | 168 | ||||
-rw-r--r-- | src/libicalss/CMakeLists.txt | 18 | ||||
-rw-r--r-- | src/libicalvcal/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/test/CMakeLists.txt | 2 |
5 files changed, 91 insertions, 103 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d3379593..32942d99 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -18,6 +18,7 @@ set(doesnothing_SRCS ) add_executable(doesnothing ${doesnothing_SRCS}) +add_dependencies(doesnothing ical icalss icalvcal) if(NOT STATIC_ONLY) target_link_libraries(doesnothing ical icalss icalvcal) diff --git a/src/libical/CMakeLists.txt b/src/libical/CMakeLists.txt index cb37c135..aaa78847 100644 --- a/src/libical/CMakeLists.txt +++ b/src/libical/CMakeLists.txt @@ -21,114 +21,129 @@ set(PACKAGE_DATA_DIR "\\\"${CMAKE_INSTALL_PREFIX}/share/libical\\\"") add_definitions(-DPACKAGE_DATA_DIR="${PACKAGE_DATA_DIR}") set(ICALSCRIPTS ${CMAKE_SOURCE_DIR}/scripts/) +set(BUILT_HEADERS) #list of derived headers we build +set(BUILD_SOURCES) #list of derived implementations we build set(PROPERTYDEPS ${ICALSCRIPTS}/mkderivedproperties.pl ${CMAKE_SOURCE_DIR}/design-data/properties.csv ${CMAKE_SOURCE_DIR}/design-data/value-types.csv - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.h.in - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.c.in ) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h - COMMAND - ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.h.in - -h ${CMAKE_SOURCE_DIR}/design-data/properties.csv - ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h - DEPENDS ${PROPERTYDEPS} + COMMAND + ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.h.in + -h ${CMAKE_SOURCE_DIR}/design-data/properties.csv + ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h + DEPENDS + ${PROPERTYDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.h.in ) +list(APPEND BUILT_HEADERS ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.c - COMMAND - ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.c.in - -c ${CMAKE_SOURCE_DIR}/design-data/properties.csv - ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.c - DEPENDS ${PROPERTYDEPS} ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h + COMMAND + ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.c.in + -c ${CMAKE_SOURCE_DIR}/design-data/properties.csv + ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.c + DEPENDS + ${PROPERTYDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedproperty.c.in ) +list(APPEND BUILT_SOURCES ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.c) set(PARAMETERDEPS ${ICALSCRIPTS}/mkderivedparameters.pl ${CMAKE_SOURCE_DIR}/design-data/parameters.csv - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.c.in - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.h.in ) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h - COMMAND - ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.h.in - -h ${CMAKE_SOURCE_DIR}/design-data/parameters.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h - DEPENDS ${PARAMETERDEPS} + COMMAND + ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.h.in + -h ${CMAKE_SOURCE_DIR}/design-data/parameters.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h + DEPENDS + ${PARAMETERDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.h.in ) +list(APPEND BUILT_HEADERS ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.c - COMMAND - ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.c.in - -c ${CMAKE_SOURCE_DIR}/design-data/parameters.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.c - DEPENDS ${PARAMETERDEPS} ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h + COMMAND + ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.c.in + -c ${CMAKE_SOURCE_DIR}/design-data/parameters.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.c + DEPENDS + ${PARAMETERDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedparameter.c.in ) +list(APPEND BUILT_SOURCES ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.c) set(RESTRICTIONDEPS ${ICALSCRIPTS}/mkrestrictiontable.pl ${CMAKE_SOURCE_DIR}/design-data/restrictions.csv - ${CMAKE_SOURCE_DIR}/src/libical/icalrestriction.c.in ) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/src/libical/) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalrestriction.c - COMMAND - ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkrestrictiontable.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalrestriction.c.in - ${CMAKE_SOURCE_DIR}/design-data/restrictions.csv > ${CMAKE_BINARY_DIR}/src/libical/icalrestriction.c - DEPENDS ${RESTRICTIONDEPS} + COMMAND + ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkrestrictiontable.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalrestriction.c.in + ${CMAKE_SOURCE_DIR}/design-data/restrictions.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalrestriction.c + DEPENDS + ${RESTRICTIONDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalrestriction.c.in ) +list(APPEND BUILT_SOURCES ${CMAKE_BINARY_DIR}/src/libical/icalrestriction.c) set(VALUEDEPS ${ICALSCRIPTS}mkderivedvalues.pl ${CMAKE_SOURCE_DIR}/design-data/value-types.csv - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.c.in - ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.h.in ) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h - COMMAND - ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.h.in - -h ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h - DEPENDS ${VALUEDEPS} + COMMAND + ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.h.in + -h ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h + DEPENDS + ${VALUEDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.h.in ) +list(APPEND BUILT_HEADERS ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h) add_custom_command( OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.c - COMMAND - ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl - -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.c.in - -c ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.c - DEPENDS ${VALUEDEPS} ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h + COMMAND + ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl + -i ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.c.in + -c ${CMAKE_SOURCE_DIR}/design-data/value-types.csv > + ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.c + DEPENDS + ${VALUEDEPS} + ${CMAKE_SOURCE_DIR}/src/libical/icalderivedvalue.c.in ) +list(APPEND BUILT_SOURCES ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.c) if(WIN32) set(TOPS "\"${CMAKE_SOURCE_DIR}\"") @@ -138,23 +153,17 @@ else() set(TOPB "${CMAKE_BINARY_DIR}") endif() -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/src/libical/ical.h +add_custom_target( + ical-header ALL COMMAND - ${CMAKE_COMMAND} - -DTOPS:FILEPATH=${TOPS} - -DTOPB:FILEPATH=${TOPB} - -DICAL_FILE_H_FILE:FILEPATH=${CMAKE_BINARY_DIR}/src/libical/ical.h - -P ${CMAKE_CURRENT_SOURCE_DIR}/ical_file.cmake + ${CMAKE_COMMAND} + -DTOPS:FILEPATH=${TOPS} + -DTOPB:FILEPATH=${TOPB} + -DICAL_FILE_H_FILE:FILEPATH=${CMAKE_BINARY_DIR}/src/libical/ical.h + -P ${CMAKE_CURRENT_SOURCE_DIR}/ical_file.cmake DEPENDS - ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h -) - -add_custom_target(ical-header DEPENDS - ${CMAKE_BINARY_DIR}/src/libical/ical.h + ${BUILT_SOURCES} + ${BUILT_HEADERS} ) # GObject Introspection @@ -184,22 +193,9 @@ endif() ########### next target ############### -set(BUILT_COMBINEDHEADERS - ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h -) - -set(BUILT_SOURCES - ${BUILT_COMBINEDHEADERS} - icalderivedparameter.c - icalderivedproperty.c - icalrestriction.c - icalderivedvalue.c -) - set(ical_LIB_SRCS ${BUILT_SOURCES} + ${BUILT_HEADERS} libical_ical_export.h icalarray.c icalarray.h @@ -253,12 +249,12 @@ set(ical_LIB_SRCS ) add_library(ical ${LIBRARY_TYPE} ${ical_LIB_SRCS}) +add_dependencies(ical ical-header) if(NOT SHARED_ONLY) add_library(ical-static STATIC ${ical_LIB_SRCS}) + add_dependencies(ical-static ical-header) endif() -add_dependencies(ical ical-header) - target_link_libraries(ical ${CMAKE_THREAD_LIBS_INIT}) if(ICU_FOUND) @@ -323,6 +319,7 @@ if(WITH_CXX_BINDINGS) if(NOT STATIC_ONLY) add_library(ical_cxx SHARED ${icalcxx_LIB_SRCS}) + add_dependencies(ical_cxx ical-header) target_link_libraries(ical_cxx ical ${CMAKE_THREAD_LIBS_INIT}) if(WINCE) target_link_libraries(ical_cxx ${WCECOMPAT_LIBRARIES}) @@ -345,6 +342,7 @@ if(WITH_CXX_BINDINGS) if(NOT SHARED_ONLY) add_library(ical_cxx-static STATIC ${icalcxx_LIB_SRCS}) + add_dependencies(ical_cxx-static ical-header) if(MSVC) set_target_properties(ical_cxx-static PROPERTIES OUTPUT_NAME "libical_cxx-static") else() @@ -372,9 +370,7 @@ install(FILES icalarray.h icalattach.h icalcomponent.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedparameter.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedproperty.h - ${CMAKE_BINARY_DIR}/src/libical/icalderivedvalue.h + ${BUILT_HEADERS} icalduration.h icalenums.h icalerror.h diff --git a/src/libicalss/CMakeLists.txt b/src/libicalss/CMakeLists.txt index 0132cf04..7eec7218 100644 --- a/src/libicalss/CMakeLists.txt +++ b/src/libicalss/CMakeLists.txt @@ -19,9 +19,8 @@ else() set(TOPB "${CMAKE_BINARY_DIR}") endif() -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/src/libicalss/icalss.h +add_custom_target( + icalss-header ALL COMMAND ${CMAKE_COMMAND} -DTOPS:FILEPATH=${TOPS} @@ -33,12 +32,6 @@ add_custom_command( ical-header ) -add_custom_target(icalss-header - DEPENDS - ical-header - ${CMAKE_BINARY_DIR}/src/libicalss/icalss.h -) - ########### next target ############### #these are generated sources, but we keep them in the repo @@ -80,12 +73,9 @@ if(WITH_BDB) endif() add_library(icalss ${LIBRARY_TYPE} ${icalss_LIB_SRCS}) -if(NOT SHARED_ONLY) - add_library(icalss-static STATIC ${icalss_LIB_SRCS}) -endif() - add_dependencies(icalss icalss-header) if(NOT SHARED_ONLY) + add_library(icalss-static STATIC ${icalss_LIB_SRCS}) add_dependencies(icalss-static icalss-header) endif() @@ -139,8 +129,10 @@ if(WITH_CXX_BINDINGS) ) endif() add_library(icalss_cxx ${LIBRARY_TYPE} ${icalsscxx_LIB_SRCS}) + add_dependencies(icalss_cxx icalss-header) if(NOT SHARED_ONLY) add_library(icalss_cxx-static STATIC ${icalsscxx_LIB_SRCS}) + add_dependencies(icalss_cxx-static icalss-header) endif() target_link_libraries(icalss_cxx icalss ical_cxx ${CMAKE_THREAD_LIBS_INIT}) diff --git a/src/libicalvcal/CMakeLists.txt b/src/libicalvcal/CMakeLists.txt index e6728e23..fc7629bc 100644 --- a/src/libicalvcal/CMakeLists.txt +++ b/src/libicalvcal/CMakeLists.txt @@ -26,12 +26,9 @@ set(icalvcal_LIB_SRCS ) add_library(icalvcal ${LIBRARY_TYPE} ${icalvcal_LIB_SRCS}) -if(NOT SHARED_ONLY) - add_library(icalvcal-static STATIC ${icalvcal_LIB_SRCS}) -endif() - add_dependencies(icalvcal ical-header) if(NOT SHARED_ONLY) + add_library(icalvcal-static STATIC ${icalvcal_LIB_SRCS}) add_dependencies(icalvcal-static ical-header) endif() diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index b7e22a66..ace0b4de 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -43,11 +43,13 @@ endmacro() macro(buildme _name _srcs) add_executable(${_name} ${_srcs}) if(NOT STATIC_ONLY) + add_dependencies(${_name} ical icalss icalvcal) target_link_libraries(${_name} ical icalss icalvcal) if(WITH_CXX_BINDINGS) target_link_libraries(${_name} ical_cxx icalss_cxx) endif() else() + add_dependencies(${_name} ical-static icalss-static icalvcal-static) if(NOT WIN32) target_link_libraries(${_name} ${CMAKE_BINARY_DIR}/lib/libical.a |