CMAKE: don't install every target

master
Martin Gerhardy 2018-01-11 06:44:50 +01:00
parent b251428879
commit 7cc7000213
19 changed files with 54 additions and 41 deletions

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)