project(PerConfig C) # Targets with per-configuration names. add_library(pcStatic STATIC pcStatic.c) set_property(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt) set_property(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg) add_library(pcShared SHARED pcShared.c) set_property(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt) set_property(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg) set_property(TARGET pcShared PROPERTY VERSION 1.2) set_property(TARGET pcShared PROPERTY SOVERSION 3) if(UNIX AND NOT CYGWIN) set(soname_file -DpcShared_soname_file=$) endif() add_executable(perconfig perconfig.c) target_link_libraries(perconfig pcStatic pcShared) set_property(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt) set_property(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg) set(PerConfig_COMMAND ${CMAKE_COMMAND} -Dconfiguration=$ -Dperconfig_file_dir=$ -Dperconfig_file_name=$ -Dperconfig_file=$ -DpcStatic_file=$ -DpcStatic_linker_file=$ -DpcShared_file=$ -DpcShared_linker_file=$ ${soname_file} -P ${PerConfig_SOURCE_DIR}/perconfig.cmake ) set(PerConfig_COMMAND "${PerConfig_COMMAND}" PARENT_SCOPE) set(PerConfig_DEPENDS ${PerConfig_SOURCE_DIR}/perconfig.cmake perconfig pcStatic pcShared)