github.com/wbrown/gpt_bpe@v0.0.0-20250709161131-1571a6e8ad2d/lib/CMakeLists.txt (about)

     1  project(gpt_bpe)
     2  cmake_minimum_required(VERSION 3.22)
     3  
     4  set(TARGET_OUT test.out)
     5  set(TARGET_LIB test.lib)
     6  
     7  # Go configurations
     8  set(GO_SRCS library.go)
     9  set(GO_LIBNAME gpt_bpe)
    10  set(GO_LIBFILE ${GO_LIBNAME}.dylib)
    11  
    12  add_custom_command(OUTPUT
    13          ${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBFILE}
    14          ${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBNAME}.h
    15          DEPENDS ${GO_SRCS}
    16          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    17          COMMAND env go build -buildmode=c-shared
    18          -o "${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBFILE}"
    19          ${CMAKE_GO_FLAGS} ${GO_SRCS}
    20          COMMENT "Building Go library")
    21  
    22  add_custom_command(OUTPUT
    23          ${CMAKE_CURRENT_BINARY_DIR}/${GO_LIBFILE}
    24          DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBFILE}
    25          COMMAND cp
    26          "${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBFILE}"
    27          "${CMAKE_CURRENT_BINARY_DIR}/${GO_LIBFILE}")
    28  
    29  add_executable(gpt_bpe_test
    30          test/test.c
    31          library.h
    32          ${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBNAME}.h
    33          ${CMAKE_CURRENT_BINARY_DIR}/${GO_LIBFILE})
    34  target_include_directories(gpt_bpe_test PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    35  target_link_directories(gpt_bpe_test PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    36  target_link_libraries(gpt_bpe_test
    37          ${CMAKE_CURRENT_SOURCE_DIR}/${GO_LIBFILE})