CMakeLists.txt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. include(SourceGroups)
  2. ###############################################################################
  3. #
  4. # examples
  5. #
  6. ###############################################################################
  7. ########################################
  8. # EXECUTABLE empbuild
  9. ########################################
  10. if (NOT CMAKE_CROSSCOMPILING)
  11. add_custom_command(
  12. OUTPUT empbuild.fdb
  13. DEPENDS
  14. isql
  15. ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbld.sql
  16. COMMAND ${CMAKE_COMMAND} -E remove empbuild.fdb
  17. COMMAND ${ISQL_CMD} -q -i ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbld.sql
  18. COMMAND ${CMAKE_COMMAND} -E copy_if_different empbuild.fdb empbuild_.fdb
  19. COMMAND ${CMAKE_COMMAND} -E remove empbuild.fdb
  20. COMMAND ${CMAKE_COMMAND} -E copy_if_different empbuild_.fdb empbuild.fdb
  21. )
  22. add_custom_command(
  23. OUTPUT empbuild.c
  24. DEPENDS
  25. gpre
  26. ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e
  27. empbuild.fdb
  28. COMMENT "Calling GPRE for empbuild.e"
  29. COMMAND ${GPRE_CMD} -r -m -n ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e empbuild.c
  30. )
  31. add_executable (empbuild empbuild.c empbuild.fdb ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e)
  32. target_link_libraries (empbuild yvalve)
  33. set_output_directory (empbuild . CURRENT_DIR)
  34. add_dependencies_cc (empbuild engine)
  35. project_group (empbuild Examples)
  36. file(GLOB files
  37. "${CMAKE_CURRENT_SOURCE_DIR}/empbuild/*.sql"
  38. "${CMAKE_CURRENT_SOURCE_DIR}/empbuild/*.inp"
  39. )
  40. foreach(F ${files})
  41. get_filename_component(name ${F} NAME)
  42. add_custom_command(TARGET empbuild POST_BUILD
  43. COMMAND ${CMAKE_COMMAND} -E copy_if_different ${F} ${name})
  44. endforeach()
  45. ########################################
  46. # BUILD STEP employee_db
  47. ########################################
  48. add_custom_command(
  49. OUTPUT employe2.fdb
  50. DEPENDS
  51. empbuild
  52. gfix
  53. ${files}
  54. COMMAND ${CMAKE_COMMAND} -E remove employe2.fdb
  55. COMMAND ${CMAKE_COMMAND} -E remove employe2_.fdb
  56. COMMAND ${EMPBUILD_CMD} employe2_.fdb
  57. COMMAND ${CMAKE_COMMAND} -E copy_if_different employe2_.fdb employe2.fdb
  58. )
  59. add_custom_target (employee_db ALL DEPENDS employe2.fdb SOURCES ${files})
  60. project_group (employee_db "Examples/Custom build steps")
  61. endif() # if (NOT CMAKE_CROSSCOMPILING)
  62. ########################################
  63. # SHARED LIBRARY udrcpp_example
  64. ########################################
  65. file(GLOB udrcpp_example_src "udr/*")
  66. add_library (udrcpp_example SHARED ${udrcpp_example_src})
  67. target_link_libraries (udrcpp_example yvalve)
  68. set_exported_symbols (udrcpp_example udr_plugin)
  69. set_output_directory (udrcpp_example plugins/udr)
  70. project_group (udrcpp_example Examples)
  71. ########################################
  72. # SHARED LIBRARY dbcrypt_example
  73. ########################################
  74. add_library (dbcrypt_example SHARED dbcrypt/DbCrypt.cpp)
  75. set_target_properties (dbcrypt_example PROPERTIES OUTPUT_NAME DbCrypt_example)
  76. set_output_directory (dbcrypt_example plugins)
  77. add_dependencies_cc (dbcrypt_example UpdateCloopInterfaces)
  78. project_group (dbcrypt_example Examples)
  79. ########################################
  80. # SHARED LIBRARY cryptkeyholder_example
  81. ########################################
  82. add_library (cryptkeyholder_example SHARED dbcrypt/CryptKeyHolder.cpp)
  83. set_target_properties (cryptkeyholder_example PROPERTIES OUTPUT_NAME CryptKeyHolder_example)
  84. set_output_directory (cryptkeyholder_example plugins)
  85. add_dependencies_cc (cryptkeyholder_example UpdateCloopInterfaces)
  86. project_group (cryptkeyholder_example Examples)
  87. ###############################################################################