daScript icon indicating copy to clipboard operation
daScript copied to clipboard

Apparently cannot use libDaScript with CMake, when this is built as a dependency

Open Zetelias opened this issue 1 year ago • 1 comments

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

Zetelias avatar Jun 21 '24 13:06 Zetelias

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.

fdarling avatar Aug 20 '25 17:08 fdarling