made CMake relative for use as a sub-project within other CMake projects (#356)

This commit is contained in:
Random 2023-05-10 18:45:51 -07:00 committed by GitHub
parent 290af832af
commit c6ea63ba95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 99 additions and 100 deletions

View File

@ -10,7 +10,7 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/3rdparty/Catch2/extras")
# Thanks to http://xit0.org/2013/04/cmake-use-git-branch-and-commit-details-in-project/
execute_process(
COMMAND git describe --dirty
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@ -20,8 +20,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_SIMULATE_ID STREQUAL "M
message(STATUS "working around exceptions not being enabled by default on clang-cl")
endif()
include_directories(
"${CMAKE_SOURCE_DIR}/include")
include_directories(include)
find_package (Threads)
@ -101,7 +100,7 @@ set(TEST_QUAKE2_MAP_EXPORT_DIR "" CACHE PATH "When running unit tests, export Qu
# just creates testmaps.hh with absolute path to the testmaps source directory.
# include it as #include <testmaps.hh>
configure_file(testmaps.hh.in testmaps.hh @ONLY)
include_directories(${CMAKE_BINARY_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(3rdparty)
add_subdirectory(common)

View File

@ -1,50 +1,50 @@
add_library(common STATIC
${CMAKE_SOURCE_DIR}/common/bspinfo.cc
${CMAKE_SOURCE_DIR}/common/bspfile.cc
${CMAKE_SOURCE_DIR}/common/bspfile_generic.cc
${CMAKE_SOURCE_DIR}/common/bspfile_q1.cc
${CMAKE_SOURCE_DIR}/common/bspfile_q2.cc
${CMAKE_SOURCE_DIR}/common/bsputils.cc
${CMAKE_SOURCE_DIR}/common/bspxfile.cc
${CMAKE_SOURCE_DIR}/common/cmdlib.cc
${CMAKE_SOURCE_DIR}/common/decompile.cc
${CMAKE_SOURCE_DIR}/common/entdata.cc
${CMAKE_SOURCE_DIR}/common/log.cc
${CMAKE_SOURCE_DIR}/common/mathlib.cc
${CMAKE_SOURCE_DIR}/common/parser.cc
${CMAKE_SOURCE_DIR}/common/qvec.cc
${CMAKE_SOURCE_DIR}/common/threads.cc
${CMAKE_SOURCE_DIR}/common/fs.cc
${CMAKE_SOURCE_DIR}/common/imglib.cc
${CMAKE_SOURCE_DIR}/common/settings.cc
${CMAKE_SOURCE_DIR}/common/prtfile.cc
${CMAKE_SOURCE_DIR}/common/debugger.natvis
${CMAKE_SOURCE_DIR}/include/common/aabb.hh
${CMAKE_SOURCE_DIR}/include/common/bitflags.hh
${CMAKE_SOURCE_DIR}/include/common/bspinfo.hh
${CMAKE_SOURCE_DIR}/include/common/bspfile.hh
${CMAKE_SOURCE_DIR}/include/common/bspfile_generic.hh
${CMAKE_SOURCE_DIR}/include/common/bspfile_q1.hh
${CMAKE_SOURCE_DIR}/include/common/bspfile_q2.hh
${CMAKE_SOURCE_DIR}/include/common/bsputils.hh
${CMAKE_SOURCE_DIR}/include/common/bspxfile.hh
${CMAKE_SOURCE_DIR}/include/common/cmdlib.hh
${CMAKE_SOURCE_DIR}/include/common/decompile.hh
${CMAKE_SOURCE_DIR}/include/common/entdata.h
${CMAKE_SOURCE_DIR}/include/common/iterators.hh
${CMAKE_SOURCE_DIR}/include/common/log.hh
${CMAKE_SOURCE_DIR}/include/common/mathlib.hh
${CMAKE_SOURCE_DIR}/include/common/parser.hh
${CMAKE_SOURCE_DIR}/include/common/polylib.hh
${CMAKE_SOURCE_DIR}/include/common/qvec.hh
${CMAKE_SOURCE_DIR}/include/common/json.hh
${CMAKE_SOURCE_DIR}/include/common/parallel.hh
${CMAKE_SOURCE_DIR}/include/common/threads.hh
${CMAKE_SOURCE_DIR}/include/common/fs.hh
${CMAKE_SOURCE_DIR}/include/common/imglib.hh
${CMAKE_SOURCE_DIR}/include/common/settings.hh
${CMAKE_SOURCE_DIR}/include/common/prtfile.hh
${CMAKE_SOURCE_DIR}/include/common/vectorutils.hh
add_library(common STATIC
bspinfo.cc
bspfile.cc
bspfile_generic.cc
bspfile_q1.cc
bspfile_q2.cc
bsputils.cc
bspxfile.cc
cmdlib.cc
decompile.cc
entdata.cc
log.cc
mathlib.cc
parser.cc
qvec.cc
threads.cc
fs.cc
imglib.cc
settings.cc
prtfile.cc
debugger.natvis
../include/common/aabb.hh
../include/common/bitflags.hh
../include/common/bspinfo.hh
../include/common/bspfile.hh
../include/common/bspfile_generic.hh
../include/common/bspfile_q1.hh
../include/common/bspfile_q2.hh
../include/common/bsputils.hh
../include/common/bspxfile.hh
../include/common/cmdlib.hh
../include/common/decompile.hh
../include/common/entdata.h
../include/common/iterators.hh
../include/common/log.hh
../include/common/mathlib.hh
../include/common/parser.hh
../include/common/polylib.hh
../include/common/qvec.hh
../include/common/json.hh
../include/common/parallel.hh
../include/common/threads.hh
../include/common/fs.hh
../include/common/imglib.hh
../include/common/settings.hh
../include/common/prtfile.hh
../include/common/vectorutils.hh
)
target_link_libraries(common ${CMAKE_THREAD_LIBS_INIT} TBB::tbb TBB::tbbmalloc fmt::fmt nlohmann_json::nlohmann_json)

View File

@ -1,13 +1,13 @@
set(LIGHT_INCLUDES
${CMAKE_SOURCE_DIR}/include/light/entities.hh
${CMAKE_SOURCE_DIR}/include/light/light.hh
${CMAKE_SOURCE_DIR}/include/light/lightgrid.hh
${CMAKE_SOURCE_DIR}/include/light/phong.hh
${CMAKE_SOURCE_DIR}/include/light/bounce.hh
${CMAKE_SOURCE_DIR}/include/light/surflight.hh
${CMAKE_SOURCE_DIR}/include/light/ltface.hh
${CMAKE_SOURCE_DIR}/include/light/trace.hh
${CMAKE_SOURCE_DIR}/include/light/litfile.hh)
../include/light/entities.hh
../include/light/light.hh
../include/light/lightgrid.hh
../include/light/phong.hh
../include/light/bounce.hh
../include/light/surflight.hh
../include/light/ltface.hh
../include/light/trace.hh
../include/light/litfile.hh)
set(LIGHT_SOURCES
entities.cc
@ -27,11 +27,11 @@ if (embree_FOUND)
MESSAGE(STATUS "Embree library found: ${EMBREE_LIBRARY}")
INCLUDE_DIRECTORIES(${EMBREE_INCLUDE_DIRS})
set(LIGHT_INCLUDES
${CMAKE_SOURCE_DIR}/include/light/trace_embree.hh
../include/light/trace_embree.hh
${LIGHT_INCLUDES})
set(LIGHT_SOURCES
trace_embree.cc
${CMAKE_SOURCE_DIR}/include/light/trace_embree.hh
../include/light/trace_embree.hh
${LIGHT_SOURCES})
# This needs to be before the add_executable
@ -54,7 +54,7 @@ if (embree_FOUND)
# causing it not to find the LICENSE.txt
get_filename_component(embree_DIR_ABS "${embree_DIR}" REALPATH CACHE)
find_file(EMBREE_LICENSE LICENSE.txt
find_file(EMBREE_LICENSE LICENSE.txt
"${embree_DIR_ABS}/doc"
"${embree_DIR_ABS}/../../../doc"
"${embree_DIR_ABS}/../embree3/embree3" # vcpkg puts it here
@ -90,12 +90,12 @@ if (embree_FOUND)
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${EMBREE_TBB_DLL}" "$<TARGET_FILE_DIR:light>")
endif()
# so the executable will search for dylib's in the same directory as the executable
# so the executable will search for dylib's in the same directory as the executable
if(APPLE)
add_custom_command(TARGET light POST_BUILD
add_custom_command(TARGET light POST_BUILD
COMMAND bash ARGS -c \"install_name_tool -add_rpath @loader_path $<TARGET_FILE:light> || true\")
endif()
install(FILES $<TARGET_FILE:embree> DESTINATION bin)
# install TBB
@ -127,4 +127,4 @@ if (embree_FOUND)
endif(embree_FOUND)
install(TARGETS light RUNTIME DESTINATION bin)
install(FILES ${CMAKE_SOURCE_DIR}/gpl_v3.txt DESTINATION bin)
install(FILES ../gpl_v3.txt DESTINATION bin)

View File

@ -1,35 +1,35 @@
set(QBSP_INCLUDES
${CMAKE_SOURCE_DIR}/include/qbsp/qbsp.hh
${CMAKE_SOURCE_DIR}/include/qbsp/brush.hh
${CMAKE_SOURCE_DIR}/include/qbsp/csg.hh
${CMAKE_SOURCE_DIR}/include/qbsp/exportobj.hh
${CMAKE_SOURCE_DIR}/include/qbsp/map.hh
${CMAKE_SOURCE_DIR}/include/qbsp/winding.hh
${CMAKE_SOURCE_DIR}/include/qbsp/merge.hh
${CMAKE_SOURCE_DIR}/include/qbsp/outside.hh
${CMAKE_SOURCE_DIR}/include/qbsp/portals.hh
${CMAKE_SOURCE_DIR}/include/qbsp/prtfile.hh
${CMAKE_SOURCE_DIR}/include/qbsp/brushbsp.hh
${CMAKE_SOURCE_DIR}/include/qbsp/faces.hh
${CMAKE_SOURCE_DIR}/include/qbsp/tjunc.hh
${CMAKE_SOURCE_DIR}/include/qbsp/tree.hh
${CMAKE_SOURCE_DIR}/include/qbsp/writebsp.hh)
../include/qbsp/qbsp.hh
../include/qbsp/brush.hh
../include/qbsp/csg.hh
../include/qbsp/exportobj.hh
../include/qbsp/map.hh
../include/qbsp/winding.hh
../include/qbsp/merge.hh
../include/qbsp/outside.hh
../include/qbsp/portals.hh
../include/qbsp/prtfile.hh
../include/qbsp/brushbsp.hh
../include/qbsp/faces.hh
../include/qbsp/tjunc.hh
../include/qbsp/tree.hh
../include/qbsp/writebsp.hh)
set(QBSP_SOURCES
${CMAKE_SOURCE_DIR}/qbsp/brush.cc
${CMAKE_SOURCE_DIR}/qbsp/csg.cc
${CMAKE_SOURCE_DIR}/qbsp/map.cc
${CMAKE_SOURCE_DIR}/qbsp/merge.cc
${CMAKE_SOURCE_DIR}/qbsp/outside.cc
${CMAKE_SOURCE_DIR}/qbsp/portals.cc
${CMAKE_SOURCE_DIR}/qbsp/prtfile.cc
${CMAKE_SOURCE_DIR}/qbsp/qbsp.cc
${CMAKE_SOURCE_DIR}/qbsp/brushbsp.cc
${CMAKE_SOURCE_DIR}/qbsp/faces.cc
${CMAKE_SOURCE_DIR}/qbsp/tjunc.cc
${CMAKE_SOURCE_DIR}/qbsp/tree.cc
${CMAKE_SOURCE_DIR}/qbsp/writebsp.cc
${CMAKE_SOURCE_DIR}/qbsp/exportobj.cc
brush.cc
csg.cc
map.cc
merge.cc
outside.cc
portals.cc
prtfile.cc
qbsp.cc
brushbsp.cc
faces.cc
tjunc.cc
tree.cc
writebsp.cc
exportobj.cc
${QBSP_INCLUDES})
add_library(libqbsp STATIC ${QBSP_SOURCES})

View File

@ -1,3 +1,3 @@
inline const char *testmaps_dir = "@CMAKE_SOURCE_DIR@/testmaps";
inline const char *testmaps_dir = "@CMAKE_CURRENT_SOURCE_DIR@/testmaps";
inline const char *test_quake_maps_dir = "@TEST_QUAKE_MAP_EXPORT_DIR@";
inline const char *test_quake2_maps_dir = "@TEST_QUAKE2_MAP_EXPORT_DIR@";

View File

@ -12,7 +12,7 @@ add_executable(tests
test_qbsp_q2.cc
test_vis.cc
testutils.hh
${CMAKE_BINARY_DIR}/testmaps.hh
${CMAKE_CURRENT_BINARY_DIR}/../testmaps.hh
testutils.hh
benchmark.cc
test_bsputil.cc)

View File

@ -1,6 +1,6 @@
set(VIS_INCLUDES
${CMAKE_SOURCE_DIR}/include/vis/leafbits.hh
${CMAKE_SOURCE_DIR}/include/vis/vis.hh)
../include/vis/leafbits.hh
../include/vis/vis.hh)
set(VIS_SOURCES
flow.cc