From 61fa3d2be0d28524ea2f12cdf5830827cdd4d4d8 Mon Sep 17 00:00:00 2001 From: lukemouse Date: Wed, 9 Oct 2024 20:37:09 +0800 Subject: [PATCH] fix output dir according to configuration;add version and linkflag support --- templates/cmake.mpd | 47 ++++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/templates/cmake.mpd b/templates/cmake.mpd index b3b44ec0..e440a02c 100644 --- a/templates/cmake.mpd +++ b/templates/cmake.mpd @@ -41,43 +41,25 @@ endif() set(PROJECT_TARGET_<%uc(normalize(project_name))%> <%if(exename)%><%exename%><%else%><%if(sharedname)%><%sharedname%>${LIBRARY_DECORATOR}<%else%><%if(staticname)%><%staticname%>${LIBRARY_DECORATOR}<%else%><%project_name%>${LIBRARY_DECORATOR}<%endif%><%endif%><%endif%>) <%marker(macros)%> -<%if(exeout)%> -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY <%env_exeout%>) -<%if(use_lib_modifier)%> -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG <%env_exeout%>) -<%endif%> -<%endif%> -<%if(!exename)%> -<%if(libout)%> -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY <%env_libout%>) -<%if(use_lib_modifier)%> +<%if(exename)%> <%foreach(configurations)%> -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<%uc(configuration)%> <%env_libout%>) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_<%uc(configuration)%> <%exeout%>) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<%uc(configuration)%> <%libout%>) <%endfor%> <%endif%> -<%endif%> -<%if(dllout)%> -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY <%env_dllout%>) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY <%env_dllout%>) -<%if(use_lib_modifier)%> + +<%if(staticname)%> <%foreach(configurations)%> -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_<%uc(configuration)%> <%env_dllout%>) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_<%uc(configuration)%> <%env_dllout%>) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<%uc(configuration)%> <%libout%>) <%endfor%> <%endif%> -<%else%> -<%if(libout)%> -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY <%env_libout%>) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY <%env_libout%>) -<%if(use_lib_modifier)%> + +<%if(sharedname)%> <%foreach(configurations)%> -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_<%uc(configuration)%> <%env_libout%>) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_<%uc(configuration)%> <%env_libout%>) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<%uc(configuration)%> <%libout%>) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_<%uc(configuration)%> <%dllout%>) <%endfor%> <%endif%> -<%endif%> -<%endif%> -<%endif%> <%if(compile_flags)%> target_compile_options(${PROJECT_TARGET_<%uc(normalize(project_name))%>} PUBLIC <%compile_flags%>) @@ -93,9 +75,18 @@ if(NOT BUILD_SHARED_LIBS) MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() <%endif%> +<%if(linkflags)%> +set_target_properties(${PROJECT_TARGET_<%uc(normalize(project_name))%>} PROPERTIES LINK_FLAGS <%linkflags%>) +<%endif%> <%else%> <%if(sharedname)%> add_library(${PROJECT_TARGET_<%uc(normalize(project_name))%>} SHARED ${SOURCE_FILES_<%uc(normalize(project_name))%>}) +<%if(version)%> +set_target_properties(${PROJECT_TARGET_<%uc(normalize(project_name))%>} PROPERTIES VERSION <%version%>) +<%endif%> +<%if(linkflags)%> +set_target_properties(${PROJECT_TARGET_<%uc(normalize(project_name))%>} PROPERTIES LINK_FLAGS <%linkflags%>) +<%endif%> <%if(dynamicflags)%> if(BUILD_SHARED_LIBS) target_compile_definitions(${PROJECT_TARGET_<%uc(normalize(project_name))%>} PRIVATE <%dynamicflags%>)