CMAKE: don't install every target
parent
b251428879
commit
7cc7000213
|
@ -474,14 +474,24 @@ endmacro()
|
|||
#
|
||||
# Example: engine_add_executable(TARGET SomeTargetName SRCS Source.cpp Main.cpp WINDOWED)
|
||||
#
|
||||
# TARGET: the target name (binary name)
|
||||
# SRCS: the source files for this target
|
||||
# WINDOWED: this is needed to indicate whether the application should e.g. spawn a console on windows
|
||||
# NOINSTALL: means that the binary and data files are not put into the final installation folder
|
||||
# this can e.g. be useful for stuff like code generators that are only needed during build
|
||||
# time.
|
||||
#
|
||||
macro(engine_add_executable)
|
||||
set(_OPTIONS_ARGS WINDOWED)
|
||||
set(_OPTIONS_ARGS WINDOWED NOINSTALL)
|
||||
set(_ONE_VALUE_ARGS TARGET)
|
||||
set(_MULTI_VALUE_ARGS SRCS)
|
||||
|
||||
cmake_parse_arguments(_EXE "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} )
|
||||
|
||||
set(_EXE_CATEGORIES "Game")
|
||||
|
||||
if (_EXE_WINDOWED)
|
||||
set(_EXE_TERMINAL "false")
|
||||
if (WINDOWS)
|
||||
add_executable(${_EXE_TARGET} WIN32 ${_EXE_SRCS})
|
||||
if (MSVC)
|
||||
|
@ -491,6 +501,7 @@ macro(engine_add_executable)
|
|||
add_executable(${_EXE_TARGET} ${_EXE_SRCS})
|
||||
endif()
|
||||
else()
|
||||
set(_EXE_TERMINAL "true")
|
||||
add_executable(${_EXE_TARGET} ${_EXE_SRCS})
|
||||
if (WINDOWS)
|
||||
if (MSVC)
|
||||
|
@ -514,26 +525,28 @@ macro(engine_add_executable)
|
|||
set_target_properties(${_EXE_TARGET} PROPERTIES LINK_FLAGS "${SANITIZE_THREAD_FLAG}")
|
||||
endif()
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
set(SHARE_DIR "share")
|
||||
set(GAMES_DIR "${SHARE_DIR}/${_EXE_TARGET}")
|
||||
set(ICON_DIR "${SHARE_DIR}/icons")
|
||||
set(BIN_DIR "games")
|
||||
configure_file(${ROOT_DIR}/contrib/installer/linux/desktop.in ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop DESTINATION ${SHARE_DIR}/applications)
|
||||
endif()
|
||||
|
||||
set(ICON "${_EXE_TARGET}-icon.png")
|
||||
if (EXISTS ${ROOT_DIR}/contrib/${ICON})
|
||||
install(FILES ${ROOT_DIR}/contrib/${ICON} DESTINATION ${ICON_DIR} COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
|
||||
foreach (dir ${RESOURCE_DIRS})
|
||||
if (IS_DIRECTORY ${dir})
|
||||
install(DIRECTORY ${dir} DESTINATION ${GAMES_DIR}/ COMPONENT ${_EXE_TARGET})
|
||||
if (NOT _EXE_NOINSTALL)
|
||||
set(ICON "${_EXE_TARGET}-icon.png")
|
||||
if (EXISTS ${ROOT_DIR}/contrib/${ICON})
|
||||
install(FILES ${ROOT_DIR}/contrib/${ICON} DESTINATION ${ICON_DIR} COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
endforeach()
|
||||
install(TARGETS ${_EXE_TARGET} DESTINATION ${BIN_DIR} COMPONENT ${_EXE_TARGET})
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
set(SHARE_DIR "share")
|
||||
set(GAMES_DIR "${SHARE_DIR}/${_EXE_TARGET}")
|
||||
set(ICON_DIR "${SHARE_DIR}/icons")
|
||||
set(BIN_DIR "games")
|
||||
configure_file(${ROOT_DIR}/contrib/installer/linux/desktop.in ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop DESTINATION ${SHARE_DIR}/applications)
|
||||
endif()
|
||||
|
||||
foreach (dir ${RESOURCE_DIRS})
|
||||
if (IS_DIRECTORY ${dir})
|
||||
install(DIRECTORY ${dir} DESTINATION ${GAMES_DIR}/ COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
endforeach()
|
||||
install(TARGETS ${_EXE_TARGET} DESTINATION ${BIN_DIR} COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(engine_target_link_libraries)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=@_EXE_TARGET@ @VERSION@
|
||||
Name=@_EXE_TARGET@ @CMAKE_PROJECT_VERSION@
|
||||
GenericName=@_EXE_TARGET@
|
||||
Comment=@DESCRIPTION@
|
||||
Exec=@_EXE_TARGET@
|
||||
Icon=@_EXE_TARGET@
|
||||
Terminal=false
|
||||
Icon=@ICON@
|
||||
Terminal=@_EXE_TERMINAL@
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
Categories=@_EXE_CATEGORIES@
|
||||
StartupNotify=true
|
||||
|
|
|
@ -3,5 +3,5 @@ set(SRCS
|
|||
FrustumEntity.h
|
||||
TestCamera.h TestCamera.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testdepthbuffer)
|
|||
set(SRCS
|
||||
TestDepthBuffer.h TestDepthBuffer.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -4,5 +4,5 @@ set(SRCS
|
|||
|
||||
Demo.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES imgui)
|
||||
|
|
|
@ -2,6 +2,6 @@ project(testluaui)
|
|||
set(SRCS
|
||||
TestLUAUI.h TestLUAUI.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES nuklear)
|
||||
check_lua_files(${PROJECT_NAME} ui/${PROJECT_NAME}.lua)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testmesh)
|
|||
set(SRCS
|
||||
TestMesh.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testnuklear)
|
|||
set(SRCS
|
||||
TestNuklear.h TestNuklear.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES nuklear)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testoctree)
|
|||
set(SRCS
|
||||
TestOctree.h TestOctree.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore frontend)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testoctreevisit)
|
|||
set(SRCS
|
||||
TestOctreeVisit.h TestOctreeVisit.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore frontend)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testplane)
|
|||
set(SRCS
|
||||
TestPlane.h TestPlane.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -2,6 +2,6 @@ project(testshapebuilder)
|
|||
set(SRCS
|
||||
TestShapeBuilder.h TestShapeBuilder.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore frontend imgui)
|
||||
#generate_shaders(${PROJECT_NAME} color)
|
||||
|
|
|
@ -2,6 +2,6 @@ project(testtemplate)
|
|||
set(SRCS
|
||||
TestTemplate.h TestTemplate.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore imgui)
|
||||
#generate_shaders(${PROJECT_NAME} color)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testtexture)
|
|||
set(SRCS
|
||||
TestTexture.h TestTexture.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -2,5 +2,5 @@ project(testvoxelfont)
|
|||
set(SRCS
|
||||
TestVoxelFont.h TestVoxelFont.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} WINDOWED NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES testcore)
|
||||
|
|
|
@ -11,7 +11,7 @@ set(SRCS
|
|||
${SHARED_SRCS}
|
||||
ComputeShaderTool.h ComputeShaderTool.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS})
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES compute simplecpp)
|
||||
|
||||
set(TEST_SRCS
|
||||
|
|
|
@ -8,5 +8,5 @@ set(SRCS
|
|||
Table.h
|
||||
../../modules/persistence/FieldType.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS})
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES core)
|
||||
|
|
|
@ -12,7 +12,7 @@ set(SRCS
|
|||
ShaderTool.h ShaderTool.cpp
|
||||
${SHARED_SRCS}
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS})
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} NOINSTALL)
|
||||
add_dependencies(${PROJECT_NAME} glslangValidator)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES video simplecpp)
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@ project(uitool)
|
|||
set(SRCS
|
||||
UITool.h UITool.cpp
|
||||
)
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS})
|
||||
engine_add_executable(TARGET ${PROJECT_NAME} SRCS ${SRCS} NOINSTALL)
|
||||
engine_target_link_libraries(TARGET ${PROJECT_NAME} DEPENDENCIES turbobadger)
|
||||
|
|
Loading…
Reference in New Issue