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