Apparently cannot use libDaScript with CMake, when this is built as a dependency
Hey, i am trying to emb dascript in my C++ application, but it gives linker errors. Since i could not find help on how to set up daScript in your C++ application with CMake, i am unsure wether the problem is on my side or on the daScript side. Regardless, i am submitting the issue.
My CMakeLists.txt file looks like that:
cmake_minimum_required(VERSION 3.15)
project(lengin CXX)
add_executable(lengin src/lengin.cpp src/main.cpp)
# Use the daScript library in the daScript subdirectory
set(DAS_AOT_EXAMPLES_DISABLED ON)
set(DAS_TUTORIAL_DISABLED ON)
set(DAS_TESTS_DISABLED ON)
set(DAS_GLFW_DISABLED ON)
set(DAS_PROFILE_DISABLED ON)
add_subdirectory(daScript)
target_link_libraries(lengin PRIVATE libDaScript)
install(TARGETS lengin DESTINATION "."
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
And the error i get is
LINK : fatal error LNK1104: cannot open file 'libDaScriptTest.lib'
It's also the same with MSVC in Visual Studio.
Surprising as i did tell it to disable tests (wouldnt compile otherwise).
I too am having trouble, though the error message is different (I am on Linux though). Here is my CMakeLists.txt:
cmake_minimum_required(VERSION 3.13)
project(daslang-test)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# set(DAS_FLEX_BISON_DISABLED ON)
set(DAS_GLFW_DISABLED ON)
set(DAS_STDDLG_DISABLED ON)
set(DAS_STBIMAGE_DISABLED ON)
set(DAS_STBTRUETYPE_DISABLED ON)
set(DAS_TOOLS_DISABLED ON)
set(DAS_AOT_EXAMPLES_DISABLED ON)
set(DAS_PROFILE_DISABLED ON)
set(DAS_TUTORIAL_DISABLED ON)
set(DAS_TESTS_DISABLED ON)
add_subdirectory(daScript)
message("CMAKE_SOURCE_DIR" ${CMAKE_SOURCE_DIR})
include_directories(
${CMAKE_SOURCE_DIR}/daScript/include
${CMAKE_SOURCE_DIR}/daScript/3rdparty/fmt/include
)
add_executable(${PROJECT_NAME}
src/main.cpp
)
target_link_libraries(${PROJECT_NAME} PRIVATE
libDaScript
)
And the error message I get while building:
$ make
[ 0%] Built target standaloneGeneratedSrc
[ 0%] Generating /home/forest/Programming/daslang-test/daScript/include/modules/external_need.inc
[ 1%] Generating /home/forest/Programming/daslang-test/daScript/include/modules/external_resolve.inc
[ 1%] Built target need_and_resolve
[ 1%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriCommon.c.o
[ 2%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriCompare.c.o
[ 2%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriEscape.c.o
[ 2%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriFile.c.o
[ 3%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriIp4.c.o
[ 3%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriIp4Base.c.o
[ 3%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriNormalize.c.o
[ 3%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriNormalizeBase.c.o
[ 4%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriParse.c.o
[ 4%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriParseBase.c.o
[ 4%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriQuery.c.o
[ 5%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriRecompose.c.o
[ 5%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriResolve.c.o
[ 5%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriShorten.c.o
[ 6%] Building C object daScript/CMakeFiles/libUriParser.dir/3rdparty/uriparser/src/UriMemory.c.o
[ 6%] Linking C static library liblibUriParser.a
[ 6%] Built target libUriParser
[ 6%] AOT precompiling /home/forest/Programming/daslang-test/daScript/daslib/utf8_utils.das -> /home/forest/Programming/daslang-test/daScript/daslib/_aot_generated/dasAotStub_utf8_utils.das.cpp
/bin/sh: 1: /home/forest/Programming/daslang-test/daScript/bin/daslang: not found
make[2]: *** [daScript/CMakeFiles/dasAotStub_utf8_utils.das_aot.dir/build.make:73: /home/forest/Programming/daslang-test/daScript/daslib/_aot_generated/dasAotStub_utf8_utils.das.cpp] Error 127
make[1]: *** [CMakeFiles/Makefile2:634: daScript/CMakeFiles/dasAotStub_utf8_utils.das_aot.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Any ideas on how to integrate daScript / Daslang as a subdirectory in another project, without installing it? Like a git submodule in other words.