comparison cmake/function/MalikaniaDefineLibrary.cmake @ 60:c6d410648367

CMake: use fakeroot/bin for DLL
author David Demelier <markand@malikania.fr>
date Fri, 16 Dec 2016 15:31:44 +0100
parents 0edaba9986ba
children 0a1e3bb3c629
comparison
equal deleted inserted replaced
59:d639250fd2a3 60:c6d410648367
56 # Enable assets for libraries. 56 # Enable assets for libraries.
57 malikania_build_assets("${LIB_ASSETS}" assets) 57 malikania_build_assets("${LIB_ASSETS}" assets)
58 58
59 # Create the shared library. 59 # Create the shared library.
60 add_library(${LIB_TARGET} SHARED ${LIB_SOURCES} ${assets}) 60 add_library(${LIB_TARGET} SHARED ${LIB_SOURCES} ${assets})
61 set_target_properties(${LIB_TARGET} PROPERTIES PREFIX "")
62 target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES}) 61 target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES})
63 target_include_directories( 62 target_include_directories(
64 ${LIB_TARGET} 63 ${LIB_TARGET}
65 PRIVATE 64 PRIVATE
66 ${CMAKE_CURRENT_BINARY_DIR}/assets 65 ${CMAKE_CURRENT_BINARY_DIR}/assets
69 ${CMAKE_CURRENT_SOURCE_DIR} 68 ${CMAKE_CURRENT_SOURCE_DIR}
70 ${LIB_PUBLIC_INCLUDES} 69 ${LIB_PUBLIC_INCLUDES}
71 ) 70 )
72 target_compile_definitions(${LIB_TARGET} PRIVATE ${LIB_FLAGS}) 71 target_compile_definitions(${LIB_TARGET} PRIVATE ${LIB_FLAGS})
73 72
73 #
74 # Move the library into fakeroot/bin/ directory for Windows and other
75 # DLL platforms so executables can be ran directly.
76 #
77 set_target_properties(
78 ${LIB_TARGET}
79 PROPERTIES
80 PREFIX ""
81 RUNTIME_OUTPUT_DIRECTORY ${WITH_FAKEROOT_DIR}/bin
82 )
83 foreach (cfg ${CMAKE_CONFIGURATION_TYPES})
84 string(TOUPPER ${cfg} cfg)
85 set_target_properties(
86 ${LIB_TARGET}
87 PROPERTIES
88 RUNTIME_OUTPUT_DIRECTORY_${cfg} ${WITH_FAKEROOT_DIR}/bin
89 )
90 endforeach ()
91
74 malikania_vera_check(${LIB_TARGET} ${LIB_SOURCES}) 92 malikania_vera_check(${LIB_TARGET} ${LIB_SOURCES})
75 endfunction() 93 endfunction()