X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2FCMakeLists.txt;h=f93b00cf1329a8662fb132c1cd897372a38808a9;hb=a1d293b87ead6c7e47140d041813ccbc6f159db4;hp=05d79830fe4fa2b56bdcadedc996d9ed325cffc9;hpb=f32d0142f9d3c220966cd608ed0082133f331de5;p=xonotic%2Fnetradiant.git diff --git a/radiant/CMakeLists.txt b/radiant/CMakeLists.txt index 05d79830..f93b00cf 100644 --- a/radiant/CMakeLists.txt +++ b/radiant/CMakeLists.txt @@ -36,7 +36,6 @@ set(RADIANTLIST filetypes.cpp filetypes.h filters.cpp filters.h findtexturedialog.cpp findtexturedialog.h - glwidget.cpp glwidget.h grid.cpp grid.h groupdialog.cpp groupdialog.h gtkdlgs.cpp gtkdlgs.h @@ -90,13 +89,14 @@ set(RADIANTLIST xmlstuff.cpp xmlstuff.h xywindow.cpp xywindow.h ) + if (WIN32) list(APPEND RADIANTLIST multimon.cpp multimon.h) -endif() +endif () -radiant_tool(radiant WIN32 radiant.rc ${RADIANTLIST}) -add_dependencies(radiant modules) -target_link_libraries(radiant +radiant_tool(${RADIANT_BASENAME} WIN32 radiant.rc ${RADIANTLIST}) +add_dependencies(${RADIANT_BASENAME} modules) +target_link_libraries(${RADIANT_BASENAME} ${CMAKE_DL_LIBS} ${LIBXML2_LIBRARIES} ${OPENGL_gl_LIBRARY} @@ -123,11 +123,35 @@ target_link_libraries(radiant splines stream string + transformpath uilib xmllib ) + if (X11_LIBRARIES) - target_link_libraries(radiant ${X11_LIBRARIES}) + target_link_libraries(${RADIANT_BASENAME} ${X11_LIBRARIES}) endif () -copy_dlls(radiant) +# PIE executables were wrongly recognized as shared libraries on Linux +# because of a mistake in the mime-type library. +# Because of that it was not possible to launch such executables from +# the file browser. +# +# While the problem is fixed upstream, most distributions still ship +# with a faulty mime-type library and may do for a long time. +# +# See: https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11 +# +# It may produce such warning though at strip time: +# warning: allocated section `.dynstr' not in segment +# and produce an unusable binary, better not strip when using this hack. +# +# This hack is only wanted for release build and +# when NetRadiant is not installed system-wide. +if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" + AND "${CMAKE_BUILD_TYPE}" STREQUAL "Release" + AND NOT FHS_INSTALL) + target_link_libraries(${RADIANT_BASENAME} -no-pie) +endif() + +copy_dlls(${RADIANT_BASENAME})