CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. project(PerConfig C)
  2. # Targets with per-configuration names.
  3. add_library(pcStatic STATIC pcStatic.c)
  4. set_property(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt)
  5. set_property(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg)
  6. add_library(pcShared SHARED pcShared.c)
  7. set_property(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt)
  8. set_property(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg)
  9. set_property(TARGET pcShared PROPERTY VERSION 1.2)
  10. set_property(TARGET pcShared PROPERTY SOVERSION 3)
  11. if(UNIX AND NOT CYGWIN)
  12. set(soname_file -DpcShared_soname_file=$<TARGET_SONAME_FILE:pcShared>)
  13. endif()
  14. add_executable(perconfig perconfig.c)
  15. target_link_libraries(perconfig pcStatic pcShared)
  16. set_property(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt)
  17. set_property(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg)
  18. set(PerConfig_COMMAND
  19. ${CMAKE_COMMAND}
  20. -Dconfiguration=$<CONFIGURATION>
  21. -Dperconfig_file_dir=$<TARGET_FILE_DIR:perconfig>
  22. -Dperconfig_file_name=$<TARGET_FILE_NAME:perconfig>
  23. -Dperconfig_file=$<TARGET_FILE:perconfig>
  24. -DpcStatic_file=$<TARGET_FILE:pcStatic>
  25. -DpcStatic_linker_file=$<TARGET_LINKER_FILE:pcStatic>
  26. -DpcShared_file=$<TARGET_FILE:pcShared>
  27. -DpcShared_linker_file=$<TARGET_LINKER_FILE:pcShared>
  28. ${soname_file}
  29. -P ${PerConfig_SOURCE_DIR}/perconfig.cmake
  30. )
  31. set(PerConfig_COMMAND "${PerConfig_COMMAND}" PARENT_SCOPE)
  32. set(PerConfig_DEPENDS ${PerConfig_SOURCE_DIR}/perconfig.cmake perconfig pcStatic pcShared)